2013-03-27 1 views
0

Я хочу, чтобы значение textvalue менялось на значение listview, когда я нажимаю listview. Я не мог этого сделать. Пожалуйста, помогите мне.Simple Listview emulator-5554 null error

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

+0

Список сейчас не отображается. – bama

+0

см. Мой ответ может быть полезным. – Harshid

ответ

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

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

+0

Пожалуйста, помогите мне исправить this.thanks – bama

+0

Неустранимая исключение, неспособное к действию Ваш контент должен иметь listview android.R.id.list. – bama

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

+0

изменить эту строку: ArrayAdapter адаптер = новый ArrayAdapter это, android.R.Layout.simple_list_item_1, songlist); –

+0

спасибо. Я использую ваш код.list, наконец, работает. – bama

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