15

Ich bin neu in der Android-Entwicklung und habe keine gründliche Java-Kenntnisse. Ich stecke lange auf einem Problem fest. Ich versuche eine neue Aktivität beim Klicken auf die Schaltfläche zu öffnen. Aber ich bekomme einen Fehler, dass Fehler: keine einschließende Klasse: Katra_home. HierKein einschließender Klassenfehler Android Studio

ist der Code für 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); 
     } 
    }); 

Und das ist der Code für 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); 
    } 

Obwohl ich viele Antworten auf Stackoverflow gesehen, aber ich konnte nicht verstehen, sie als Ich bin neu in der Android-Entwicklung. Daher möchte ich fragen, welche Änderungen ich in meinem Code vornehmen muss, damit es funktioniert.

Antwort

25

Es sollte

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

Sie bestehenden Aktivitätskontext verwenden, um neue Aktivitäten zu starten, wird neue Aktivität noch nicht erstellt, und Sie können nicht ihren Kontext oder Call Methoden auf sie verwenden.

keine einschließende Klasse Fehler wird aufgrund Ihrer Verwendung von this Stichwort ausgelöst. this ist eine Referenz auf das aktuelle Objekt - das Objekt, dessen Methode oder Konstruktor aufgerufen wird. Mit this können Sie nur innerhalb einer Instanzmethode oder eines Konstruktors auf ein beliebiges Mitglied des aktuellen Objekts verweisen.

Katra_home.this ist ungültig Konstrukt

0

ersetzen Code in onClick() -Methode mit diesem:

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

Das sollte die perfekte one :)

0

Sie fordern den Kontext nicht existing activity ... so ersetzen Sie einfach Ihren Code in onClick (View v) als Absicht intent = new Intent (this, Katra_home.class); startActivity (Absicht); wird es definitiv funktionieren ....

-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

Toast Zeilenfehler: Keine einschließende Klasse. – Avinash

+0

Bitte fügen Sie eine Erklärung hinzu, warum/wie dieser Code das Problem löst. ty – Reg

Verwandte Themen