Android 不幸的是,我的应用程序已经停止
我正在尝试从Listview项目开始我的活动。第一项工作正常,但当我单击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
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
}