2013-08-06 3 views
0

У меня возникли проблемы с попыткой получить данные из моего списка, а затем установить эту строку данных в EditText, как только пользователь выберет продукт из списка. Что мне нужно для создания этого кода, чтобы это произошло? Заранее спасибо.Android, получающий данные из Listview

(Кроме того, извините, если это глупый вопрос, я новичок в андроид и Java)

активность с EditText:

EditText CPU = (EditText) findViewById(R.id.autoCompleteTextView4); 
    CPU.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      Intent CPUList = new Intent(getApplicationContext(), 
        CPUList.class); 
      startActivityForResult(CPUList, RESULT_OK); 
     } 

    }); 

Список активности

final ListView listViewCPU = (ListView) findViewById(R.id.listViewCPU); 
    listViewCPU.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

    String CPUList[] = { 

    "CPU's go here", "CPU's go here", "CPU's go here", "CPU's go here" }; 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, CPUList); 

    listViewCPU.setAdapter(adapter); 

    listViewCPU.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) { 
      String CPU =(listViewCPU.getItemAtPosition(pos).toString()); 

     } 
    }); 

} 

} 
+0

сделал после входа строку CPU. вы получаете правильное значение. – Raghunandan

ответ

0

ArrayAdapter содержит ваши данные. Если вы возьмете ссылку на свой адаптер, вы можете извлечь строку из этой позиции.

Следует отметить, что в вашем прослушивателе OnItemClick вы назвали свой адаптер AdapterView myAdapter, правда в том, что вид адаптера представляет собой просто представление, которое реализует адаптер, поэтому в этом случае представление адаптера будет вашим списком.

Ниже показано, как можно получить строку из храпового слушателя:

listViewCPU.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> listview, View myView, int pos, long mylng) { 
     String CPU = (String) listview.getAdapter().getItem(pos); 

    } 
}); 
+0

Где я могу разместить ссылку на мой адаптер? – Jack

+0

Вы могли бы сделать это глобальной переменной, когда вы ее инициализировали раньше, или вы можете получить ее через аргумент AdapterView, как я сделал выше. – jimmithy

+0

При использовании кода, который вы указали мне выше, я получаю сообщение об ошибке «Позиция», говоря, что «позиция не объявлена ​​переменной» – Jack

Смежные вопросы