私はAndroid開発であり、Javaの詳細な知識がありません。長い間問題に悩まされています。ボタンのクリックで新しいアクティビティを開こうとしています。 エラー:囲むクラスではありません:Katra_homeというエラーが表示されます。
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);
}
});
そして、これは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);
}
私はstackoverflowに関する多くの答えを見てきましたが、Android開発で新しいので、それらを理解することができませんでした。作業。
そのはず
Intent myIntent = new Intent(this, Katra_home.class);
startActivity(myIntent);
既存のアクティビティコンテキストを使用して新しいアクティビティを開始する必要があります。新しいアクティビティはまだ作成されておらず、そのコンテキストを使用したりメソッドを呼び出したりすることはできません。
囲んでいるクラスではないエラーは、this
キーワードの使用のためにスローされます。 this
は、現在のオブジェクト(メソッドまたはコンストラクターが呼び出されるオブジェクト)への参照です。 this
を使用すると、インスタンスメソッドまたはコンストラクター内から現在のオブジェクトのメンバーのみを参照できます。
Katra_home.this
は無効な構造です
Intent myIntent = new Intent(MainActivity.this, Katra_home.class);
startActivity(myIntent);
これは完璧なものでなければなりません:)
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();
}
}
});
既存のアクティビティではないコンテキストを呼び出しています...そのため、onClick(View v)のコードをIntent intent = new Intent(this、Katra_home.class)として置き換えてください。 startActivity(intent);それは間違いなく動作します。..
onClick()メソッドのコードをこれに置き換えます:
Intent myIntent = new Intent(this, Katra_home.class);
startActivity(myIntent);