2013-03-27 52 views
0

我想要將textvalue更改爲listview值,當我點擊列表視圖。 我無法做到這一點。請幫幫我。簡單的列表視圖模擬器-5554空錯誤

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(); 
    } 
} 
+0

你能得到你的答案嗎? – Harshid 2013-03-28 10:17:20

+0

列表現在不可見。 – bama 2013-03-28 10:59:39

+0

看到我的答案可能會有所幫助。 – Harshid 2013-03-28 11:05:38

回答

0

必須更換這一點。

<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); 

一些有用的鏈接。

http://windrealm.org/tutorials/android/android-listview.php

http://androidtrainningcenter.blogspot.in/2012/09/simple-listview-example-in-android.html

,如果你發現任何問題,然後讓我知道。

+0

現在我明白了。你的例子非常清楚。謝謝很多。 – bama 2013-03-28 11:14:48

1

你沒有得到TextView的和設定值。

@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); 
} 
+0

我試過了,但它給主要的致命錯誤。 – bama 2013-03-27 19:57:42

+0

請幫我解決這個問題。感謝 – bama 2013-03-27 19:59:21

+0

致命異常無法活動你的內容必須有一個listview android.R.id.list。 – bama 2013-03-27 20:26:58

0

只需使用下面的代碼:

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); 
     } 
    } 

在佈局文件:替換該行android:id="@id/textvalue"這個android:id="@+id/textvalue"

+0

當我在模擬器中執行時,列表爲空。 – bama 2013-03-28 10:49:48

+0

更改此行:ArrayAdapter adapter = new ArrayAdapter this,android.R.Layout.simple_list_item_1,songlist); – 2013-03-28 10:54:48

+0

謝謝。我正在使用你的code.list終於工作了。很好。 – bama 2013-03-28 11:00:14

0

試試這個

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(); 
    } 
}