Android 简单Listview仿真器-5554空错误

Android 简单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_

我想在单击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_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);