简体   繁体   中英

Simple Hello World app

When I try running this code it says "Error:not an enclosing class:MainActivity" and "Error:Missing method body or declare abstract." And there's probably a really simple answer for this but I am new to Android and Java programming, so sorry for my noob-ishness.

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;


public class MainActivity2 extends Activity {

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

    Intent myIntent = new Intent (MainActivity.this, MainActivity2.class);
    startActivityForResult(myIntent, 0);

    Button btn = (Button) findViewById(R.id.button2);
    btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v);
    });
}


//Activities
public void onStart() {
    super.onStart();
    Log.i("TaskActivity", "MainActivity Started");
}

public void onResume() {
    super.onResume();
    Log.i("TaskActivity", "MainActivity Resumed");
}

public void onPause() {
    super.onPause();
    Log.i("TaskActivity", "MainActivity Paused");
}

public void onStop() {
    super.onStop();
    Log.i("TaskActivity", "MainActivity Stopped");
}

@Override
public void onDestroy() {
    super.onDestroy();
    Log.i("TaskActivity", "MainActivity Destroyed");
}

}

The first argument of your Intent() should be the current (enclosing) class. The second argument is the Activity to load. Check the Developer Docs here

If you want to launch MainActivity from MainActivity2 , reverse the arguments so your Intent looks like:

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

The error relating to your method likely comes from using the incorrect syntax when assigning your onClickListener . If you are trying to start MainActivity from a button press, you will need to re-write this section:

Button button = (Button) findViewById(R.id.button2);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(MainActivity2.this, MainActivity.class);
        startActivity(intent);
    }
 });

You need to implement the onClick Method

btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){
    }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM