致命异常:main java.lang.RuntimeException:无法在Android Studio中启动activity ComponentInfo
我在尝试创建android listview时遇到了这个问题。如果我插入listview的代码,则应用程序未打开,它显示应用程序已停止,如果我删除该listview的代码,则一切正常 这是我的MainActivity.java文件。我也有其他文件,但没有对它们进行任何更改,所以我认为问题出在这个文件中。这里有什么问题致命异常:main java.lang.RuntimeException:无法在Android Studio中启动activity ComponentInfo,android,listview,Android,Listview,我在尝试创建android listview时遇到了这个问题。如果我插入listview的代码,则应用程序未打开,它显示应用程序已停止,如果我删除该listview的代码,则一切正常 这是我的MainActivity.java文件。我也有其他文件,但没有对它们进行任何更改,所以我认为问题出在这个文件中。这里有什么问题 package com.isudip.task3; import android.content.Intent; import android.support.v7.app.Ap
package com.isudip.task3;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.AdapterView;
public class MainActivity extends AppCompatActivity {
public Button btn;
//button on the start page
public void summary(){
btn = (Button)findViewById(R.id.start);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent summaryView = new Intent(MainActivity.this, Summary.class);
startActivity(summaryView);
}
});
}
//adding list
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
summary();
ListView listView;
listView = (ListView) findViewById(R.id.team_list);
String[] values = new String[]{
"Item 1",
"Item 2",
"Item 3",
"Item 4"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == 0) {
Intent myIntent = new Intent(view.getContext(), City.class);
startActivityForResult(myIntent, 0);
}
if (position == 1) {
Intent myIntent = new Intent(view.getContext(), Arsenal.class);
startActivityForResult(myIntent, 0);
}
}
});
}
}
当您
startActivityForResult
时,您需要重写activityResult上的方法来处理响应
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
// Do something with the contact here (bigger example below)
}
}
}
您在上有一个NullPointerException
com.isudip.task3.MainActivity.onCreate(MainActivity.java:48)
在第48行中,使用listView:
listView.setAdapter(adapter);
这意味着listView为Null(未初始化)。您尝试通过从布局中获取来初始化它:
setContentView(R.layout.activity_main);
...
ListView listView;
listView = (ListView) findViewById(R.id.team_list);
似乎在名为activity\u main
的布局中找不到id为team\u list
的listView,在这种情况下可能返回Null
检查布局中是否有名为“团队列表”的列表视图。感谢大家的帮助。这个问题很愚蠢。我试图从MainActivity调用我的ListView,但ListView是另一个xml,这就是问题的原因,现在将我的ListView的代码移动到相关的java类,现在一切都好了。任何时候发生故障,你都应该从LogCat获取stacktrace并首先检查它。只要用LogCat编辑我的问题,抱歉出错,请现在查看,谢谢。首先忘记添加logcat,请您再看一看??ArrayAdapter itemsAdapter=new ArrayAdapter(这个,android.R.layout.simple_list_item_1,值);像这样定义适配器,然后将其分配给listView。是否尝试重写onActivityResult方法?。这是有道理的,我的listView位于另一个xml文件中,我愚蠢到从MainActivity调用它。非常感谢,我将与我的ListView相关的代码移到了那个java类中,一切都很好。。。
setContentView(R.layout.activity_main);
...
ListView listView;
listView = (ListView) findViewById(R.id.team_list);