2015-07-01 2 views
0

Я работаю над приложением Android, которое показывает число и имя человека, используя ListView. Но компиляторы не распознают «champs1» и «champs2».ViewView widget android

public class Second extends Activity { 
ListView vue; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.act2); 
    vue=(ListView) findViewById(R.id.listV2); 

    String [][] rep=new String[][]{{"1","aaaaaaa" }, 
            {"2","bbbbbbb" }, 
            { "3","ccccccc" }  }; 
    List<HashMap<String,String> > list= new ArrayList<HashMap<String, String>>(); 
    HashMap<String,String> element; 
    for(int i=0 ;i<rep.length;i++){ 
     element =new HashMap<String, String>(); 
     element.put("chmaps1",rep[i][0]); 
     element.put("champs2",rep[i][1]); 
     list.add(element); 
    } 
    ListAdapter adapter=new SimpleAdapter(this, 
              list, 
              android.R.layout.simple_list_item_2, 
              new String[] {"chmaps1","champs2"}, 
              new int[] {android.R.id.champs1, android.R.id.champs2 }); 

    vue.setAdapter(adapter); 
} 
} 

Ошибка: (39, 71) Ошибки: не удается найти символ переменной champs1 Ошибки: (39, 71) Ошибки: не удается найти символ переменной champs2

+0

Отладить свой код с указанием значения rep и проверить правильность его инициализации. – RaMeSh

ответ

1

enter image description hereизменения android.R.id.champs1 к android.R.id.text1

изменение android.R.id.champs2 в android.R.id.text2

общественности class Second extends Activity { ListView vue;

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_searchable); 
    vue = (ListView) findViewById(R.id.listView1); 

    String[][] rep = new String[][] { { "1", "aaaaaaa" }, 
      { "2", "bbbbbbb" }, { "3", "ccccccc" } }; 
    List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); 
    HashMap<String, String> element; 
    for (int i = 0; i < rep.length; i++) { 
     element = new HashMap<String, String>(); 
     element.put("chmaps1", rep[i][0]); 
     element.put("champs2", rep[i][1]); 
     list.add(element); 
    } 

    ListAdapter adapter = new SimpleAdapter(this, list, 
      android.R.layout.simple_list_item_2, new String[] { "chmaps1", 
        "champs2" }, new int[] { android.R.id.text1, 
        android.R.id.text2 }); 

    vue.setAdapter(adapter); 
     } 
} 
0

поместить этот код в цикл

HashMap<String, String> element = new HashMap<String, String>(); 

и проблем нет i думаю, что android.R.id.champs1 или R.id.champs1 оба правильные.

изменить это один вместо этого vue.setAdapter (адаптер)

попробовать, как этот vue.setListAdapter (адаптер);

0

Вы refferring к:

android.R.id.champs1 

вместо:

R.id.champs1 

быть также осторожны, что вы ар вызывая переменные chmaps1 иногда и champs1 некоторые другие времена.