2015-06-28 13 views
15

Tôi mới phát triển Android và không có kiến ​​thức chuyên sâu về Java. Tôi bị mắc kẹt trong một vấn đề trong một thời gian dài. Tôi đang cố mở một hoạt động mới khi nhấp vào nút. Nhưng tôi gặp lỗi khi lỗi : không phải là một lớp kèm theo: Katra_home.Không phải là lỗi lớp kèm theo Android Studio

Đây là mã cho MainActivity.java

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button btn=(Button)findViewById(R.id.bhawan1); 
    btn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent myIntent = new Intent(Katra_home.this, Katra_home.class); 
      Katra_home.this.startActivity(myIntent); 
     } 
    }); 

Và đây là mã cho Katra_home.java

public class Katra_home extends BaseActivity { 

protected static final float MAX_TEXT_SCALE_DELTA = 0.3f; 

private ViewPager mPager; 
private NavigationAdapter mPagerAdapter; 
private SlidingTabLayout mSlidingTabLayout; 
private int mFlexibleSpaceHeight; 
private int mTabHeight; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.katra_home); 

    ActionBar ab = getSupportActionBar(); 
    if (ab != null) { 
     ab.setDisplayHomeAsUpEnabled(true); 
     ab.setHomeButtonEnabled(true); 
    } 

Mặc dù tôi đã chứng kiến ​​nhiều câu trả lời trên stackoverflow nhưng tôi không thể hiểu chúng như Tôi mới trong phát triển Android. Vì vậy, tôi muốn hỏi những thay đổi nào tôi cần thực hiện trong mã của mình để làm cho nó hoạt động.

Trả lời

25

Nó phải là

Intent myIntent = new Intent(this, Katra_home.class); 
startActivity(myIntent); 

Bạn phải sử dụng bối cảnh hoạt động hiện có để bắt đầu hoạt động mới, hoạt động mới chưa được tạo, và bạn không thể sử dụng bối cảnh hoặc gọi phương thức của nó khi nó.

không phải là một lớp kèm theo lỗi được đưa ra do việc bạn sử dụng từ khóa this. this là một tham chiếu đến đối tượng hiện tại - đối tượng có phương thức hoặc hàm tạo đang được gọi. Với this bạn chỉ có thể tham khảo bất kỳ thành viên nào của đối tượng hiện tại từ bên trong một phương thức thể hiện hoặc một hàm tạo.

Katra_home.this không hợp lệ xây dựng

0

thay thế mã trong onClick() phương pháp với điều này:

Intent myIntent = new Intent(this, Katra_home.class); 
startActivity(myIntent); 
4
Intent myIntent = new Intent(MainActivity.this, Katra_home.class); 
startActivity(myIntent); 

này nên hoàn hảo một :)

0

bạn đang gọi bối cảnh không hoạt động hiện tại ... do đó, chỉ cần thay thế mã của bạn trong onClick (Xem v) thành Ý định mục đích = new Intent (this, Katra_home.class); startActivity (intent); nó chắc chắn sẽ hoạt động ....

-1
String user_email = email.getText().toString().trim(); 
firebaseAuth 
    .createUserWithEmailAndPassword(user_email,user_password) 
    .addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 
      if(task.isSuccessful()) { 
       Toast.makeText(RegistraionActivity.this, "Registration sucessful", Toast.LENGTH_SHORT).show(); 
       startActivities(new Intent(RegistraionActivity.this,MainActivity.class)); 
      }else{ 
       Toast.makeText(RegistraionActivity.this, "Registration failed", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
+0

Lỗi dòng bánh mì nướng: Không phải là một lớp kèm theo. – Avinash

+0

Vui lòng thêm giải thích tại sao/cách mã này sẽ giải quyết được sự cố. ty – Reg

Các vấn đề liên quan