Android 简单Listview仿真器-5554空错误
我想在单击listview时将textvalue更改为listview值。 我不能这么做。请帮帮我 activity_main.xmlAndroid 简单Listview仿真器-5554空错误,android,listview,Android,Listview,我想在单击listview时将textvalue更改为listview值。 我不能这么做。请帮帮我 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listvalue"
android:layout_width="160dp"
android:layout_weight="0.02"
android:text="@string/listval" />
<TextView
android:id="@id/textvalue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtval" />
<Button
android:id="@+id/stopBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stopBtn" />
</LinearLayout>
MainActivity.java
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] songlist={"Green","Yellow","Black","White","Red"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>this,R.layout.activity_main, R.id.txtvalue, songlist);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
}
public类MainActivity扩展了ListActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
字符串[]歌曲列表={“绿色”、“黄色”、“黑色”、“白色”、“红色”};
ArrayAdapter=新的ArrayAdapter此,R.layout.activity_main,R.id.txtvalue,歌曲列表);
setListAdapter(适配器);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
字符串项=(字符串)getListAdapter().getItem(位置);
Toast.makeText(此项+选定项),Toast.LENGTH_LONG.show();
}
}
您没有获取文本视图并设置值
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
TextView tv = (TextView) findViewById(R.id.textvalue);
tv.setText(item);
}
只需使用以下代码:
public class MainActivity extends ListActivity {
String[] songlist={"Green","Yellow","Black","White","Red"};
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textvalue);
//String[] songlist={"Green","Yellow","Black","White","Red"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.Layout.simple_list_item_1, songlist);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = songlist[position];
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
tv.setText(item);
}
}
public类MainActivity扩展了ListActivity{
字符串[]歌曲列表={“绿色”、“黄色”、“黑色”、“白色”、“红色”};
文本视图电视;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textvalue);
//字符串[]歌曲列表={“绿色”、“黄色”、“黑色”、“白色”、“红色”};
ArrayAdapter=新的ArrayAdapter(这是android.R.Layout.simple\u list\u item\u 1,歌曲列表);
setListAdapter(适配器);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
字符串项=歌曲列表[位置];
Toast.makeText(此项+选定项),Toast.LENGTH_LONG.show();
tv.setText(项目);
}
}
在布局文件中:将这一行替换为这一行android:id=“@id/textvalue”
ListView listView=getListView();
setListAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
}
ListView ListView=getListView();
setListAdapter(适配器);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
字符串项=(字符串)getListAdapter().getItem(位置);
Toast.makeText(此项+选定项),Toast.LENGTH_LONG.show();
}
}
您必须更换此
<TextView
android:id="@id/textvalue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtval" />
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.activity_main, R.id.txtvalue, songlist);
ArrayAdapter=新的ArrayAdapter(这个,R.layout.activity_main,R.id.txtvalue,歌曲列表);
一些有用的链接
如果您发现任何问题,请告诉我。致命异常无法激活您的内容必须具有listview android.R.id.list。请将列表的id从android:id=“@+id/listvalue”更改为android:id=“@android:id/list”你能得到你的答案吗?列表现在不可见。查看我的答案可能会有所帮助。当我在模拟器中执行时,列表为空。更改此行:ArrayAdapter=new ArrayAdapter this,android.R.Layout.simple_List_item_1,songlist);