Android 不幸的是,我的应用程序已经停止

Android 不幸的是,我的应用程序已经停止,android,listview,android-activity,android-emulator,Android,Listview,Android Activity,Android Emulator,我正在尝试从Listview项目开始我的活动。第一项工作正常,但当我单击SecondActivity时出现错误。 这是我的ListView活动代码 public class menu extends ListActivity{ String [] menuItems = {"MainActivity","SecondActivity","Item2","Item3"}; @Override protected void onCreate(Bundle savedInsta

我正在尝试从Listview项目开始我的活动。第一项工作正常,但当我单击
SecondActivity
时出现错误。 这是我的
ListView
活动代码

public class menu extends ListActivity{
    String [] menuItems = {"MainActivity","SecondActivity","Item2","Item3"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(menu.this,android.R.layout.simple_expandable_list_item_1, menuItems));

    }
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        try {

            Log.d("Tst","Value");
            Class menuItem = Class.forName("com.example.newboston." + menuItems[position] );


            Intent itemItent = new Intent(menu.this, menuItem);
            startActivity(itemItent);

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block 
            e.printStackTrace();
        }       
    }
}
这是我的
AndroidManifest.xml
code

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.newboston"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.newboston.Startup"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.newboston.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.newboston.MAINACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.newboston.menu"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.newboston.menu" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.newboston.SecondActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.newboston.SecondActivity" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>


}一个明显的错误。您正在
onCreate
外部初始化视图。您可以
findViewById
将当前视图层次结构设置为活动。您需要先将内容设置为活动,然后初始化视图。如果没有,您将获得
NullPointerException

    EditText etPass;
    Button btPass; 
    ToggleButton tgPass;
    TextView tvPass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.togglebtn);
    etPass = (EditText) findViewById(R.id.etPassword);
    btPass =(Button) findViewById(R.id.btPassword);
    tgPass = (ToggleButton) findViewById(R.id.tgPassword);
    tvPass = (TextView) findViewById(R.id.displayTV);
    .... // rest of the code
    }

您的logcat中应该有一个堆栈跟踪。请发布。没有什么像“这是我的代码。请修复”这样的问题。有可用的stacktrace吗?如何检查stacktrace???@LASIAF转到windows透视ddms logcat。在这里,您将看到异常以及引发异常的行。代码与我发布的代码相同。我在setcontent之后更改ui的初始化view@LASIAF在
setContentView
@DigveshPatel正常工作后,需要初始化视图。塔克斯。但根据我的代码,为什么它对第一项有效…?@LASIAF在您的主要活动中可能是您没有获得NPE。但是,当您导航到SecondActivity时,您会得到NPE,从而导致崩溃。
public class SecondActivity extends Activity{  

    @Override
     protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //  Log tag;
    // Log.d("testing", "In toggle java");
    setContentView(R.layout.togglebtn);


**Changes here** 
**EditText etPass = (EditText) findViewById(R.id.etPassword);
Button btPass =(Button) findViewById(R.id.btPassword);
ToggleButton tgPass = (ToggleButton) findViewById(R.id.tgPassword);
TextView tvPass = (TextView) findViewById(R.id.displayTV);
Random animate = new Random();**

    passTextCheck();    
    textPosition();
}

public void passTextCheck(){
tgPass.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(tgPass.isChecked()){
            etPass.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
        }else{
            etPass.setInputType(InputType.TYPE_CLASS_TEXT);
        }   
    }
    });
}
public void textPosition(){
    btPass.setOnClickListener(new View.OnClickListener() {
//          Toast testToast = new Toast(toggle.this);
            CharSequence text;
            @Override
            public void onClick(View v) {
                String check  = tgPass.getText().toString();
                if(check.contentEquals("left")){
                    tvPass.setGravity(Gravity.LEFT);
                    tvPass.setTextColor(Color.BLUE);
                    text = "Left + Blue";
                    Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show();

            }else if(check.contentEquals("right")){
                tvPass.setGravity(Gravity.RIGHT);
                tvPass.setTextColor(Color.GREEN);
                text = "Right + Green";
                Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show();
            }else if(check.contentEquals("center")){
                tvPass.setGravity(Gravity.CENTER);
                tvPass.setTextColor(Color.MAGENTA);
                text = "Center + Magenta";
                Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show();
            }else if(check.contentEquals("animate")){
                tvPass.setText("Hello");
                tvPass.setGravity(Gravity.CENTER);
                tvPass.setTextColor(Color.rgb(animate.nextInt(50), animate.nextInt(50),animate.nextInt(50))  );
            }
            // TODO Auto-generated method stub

        }
    });

}
    EditText etPass;
    Button btPass; 
    ToggleButton tgPass;
    TextView tvPass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.togglebtn);
    etPass = (EditText) findViewById(R.id.etPassword);
    btPass =(Button) findViewById(R.id.btPassword);
    tgPass = (ToggleButton) findViewById(R.id.tgPassword);
    tvPass = (TextView) findViewById(R.id.displayTV);
    .... // rest of the code
    }