Java 在android中将项目添加到listview时,应用程序崩溃
我必须使用android中的arrayadapter将项目添加到listview中,因此完成了编码,如果我运行该项目,应用程序将强制关闭,甚至在清单中提到了该活动,但仍然无法找到崩溃的确切原因Java 在android中将项目添加到listview时,应用程序崩溃,java,android,listview,Java,Android,Listview,我必须使用android中的arrayadapter将项目添加到listview中,因此完成了编码,如果我运行该项目,应用程序将强制关闭,甚至在清单中提到了该活动,但仍然无法找到崩溃的确切原因 public class Jobs extends ListActivity { private TextView selection; private static final String[] items={"Computer Hardware", "Featured", "Information
public class Jobs extends ListActivity {
private TextView selection;
private static final String[] items={"Computer Hardware", "Featured", "Information Technology", "Software", "Technical"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection = (TextView)findViewById(R.id.selection);
ListView list = (ListView)findViewById(android.R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.jobs, items);
setListAdapter(adapter);
}
public void onListItemClick(ListView parent, View v, int position, long id)
{
selection.setText(items[position]);
}
}
您现在没有初始化您正在使用的包含null的选择。所以你得到了NPE。
public void onListItemClick(ListView parent, View v, int position, long id)
{
>>>>selection.setText(items[position]);
}
试试这个
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection = (TextView)findViewById(R.id.selection); //Write this
//Rest of code
}
公共类作业扩展了ListActivity{
私有文本视图选择;
私有静态最终字符串[]项={“计算机硬件”、“特色”、“信息技术”、“软件”、“技术”
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView ListView=getListView();//使用android的defailt ListView
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.jobs、items);
setListAdapter(适配器);
}
public void onListItemClick(ListView父视图、视图v、整数位置、长id)
{
selection.setText(项目[位置]);
}
}
在使用列表活动时,您应该使用默认列表…而不是自定义列表名称您必须在
onCreate()
中初始化textview
在ListActivity中,您不需要在活动中获取ListView。它会自动从xml获取。您只需为列表视图提供一个定义的id,即android:id=“@android:id/list”,在adapter中,您还可以提供一个预定义的id。您可以这样编写程序: jobs.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
/>
<TextView android:id="@+id/textSelected"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
在你的活动中:
private TextView selection;
private static final String[] items={"Computer Hardware", "Featured", "Information Technology", "Software", "Technical"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection=(TextView)findViewById(R.id.textSelected);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView parent, View v, int position, long id)
{
selection.setText(items[position]);
}
}
私有文本视图选择;
私有静态最终字符串[]项={“计算机硬件”、“特色”、“信息技术”、“软件”、“技术”
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection=(TextView)findViewById(R.id.textSelected);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,items);
setListAdapter(适配器);
}
@凌驾
public void onListItemClick(ListView父视图、视图v、整数位置、长id)
{
selection.setText(项目[位置]);
}
}
希望这能解决您的问题。日食中的错误是什么请发布您的错误代码以获取更多信息helps@DDA试试我的解决方案,它可能会对你有所帮助。我已经初始化了选择。。n还编写了这段代码,,,@tgmcians在您初始化的地方。正如我看到的您的上述代码一样,我没有找到。无论如何,仍然会出现错误??您没有在androidmanifest.xml中定义正确的映射。检查清单中的com.exm.com.Jobs活动映射。我没有向下投票,兄弟,不知道谁做了@Captain americai如果它有效,请向上投票,因为它降低了我的分数朋友单击我初始化的向上箭头,但它仍然崩溃
public class Jobs extends ListActivity {
private TextView selection;
private static final String[] items={"Computer Hardware", "Featured", "Information Technology", "Software", "Technical"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView listView = getListView(); //use defailt listview of android
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.jobs, items);
setListAdapter(adapter);
}
public void onListItemClick(ListView parent, View v, int position, long id)
{
selection.setText(items[position]);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView list = (ListView)findViewById(R.id.list);
selection = (TextView)findViewById(R.id.selection);
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
/>
<TextView android:id="@+id/textSelected"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
private TextView selection;
private static final String[] items={"Computer Hardware", "Featured", "Information Technology", "Software", "Technical"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection=(TextView)findViewById(R.id.textSelected);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView parent, View v, int position, long id)
{
selection.setText(items[position]);
}
}