2013-11-28 2 views
0

В моей программе у меня есть пользовательский listView с двумя текстовыми представлениями. теперь я хочу установить режим выбора и получить эти два текста textView. Я написал для этого код, но он не работает. я указываю это в комментарии.получить текст из пользовательского спискаView

public class ThanaActivity extends Activity { 


    //DatabaseOperation dbOperation = new DatabaseOperation(this); 
    List <String> thanaName = new ArrayList<String>(); 
    List <String> thanaMobileNumber = new ArrayList<String>(); 
    private String clickedItemNameDistrict ; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_thana);      
     populateArrayListOfDhakaDistrict(); 

    } 

     // this method does not work when i click on list item 
    public void onListItemClick (ListView parent, View v, int position, long id) { 
     String clickedItemNumberThana = thanaMobileNumber.get(position); 

     Toast.makeText(this, "number is:"+clickedItemNumberThana, Toast.LENGTH_SHORT).show(); 
     TextView textV = (TextView)findViewById(R.id.textViewInstituateNumber); 
     String hi= textV.getText().toString(); 
     System.out.println("clicked item number is:"+hi); 
    } 


    public void populateArrayListOfDhakaDistrict() { 
     List <String> thanaInfoList = getAllThanaInfo();   
     ListView listView = (ListView)findViewById(R.id.listViewInstituate); 
     listView.setChoiceMode(listView.CHOICE_MODE_SINGLE); //this line no work 
     listView.setAdapter(new IconicAdapter()); 

     } 

    public List <String> getAllThanaInfo() { 
     dbOperation.open(); 

     Cursor c= dbOperation.getThanaInfo(); 
     c.moveToFirst(); 
     while (! c.isAfterLast()) { 

      String thanaInfoName = c.getString(c.getColumnIndex("thana_name")); 
      String thanaInfoMobile = c.getString(c.getColumnIndex("mobile_no")); 
      String thanaInfoTelephone = c.getString(c.getColumnIndex("telephone_no")); 
      //String teleInfo = new String (c.getColumnIndex(thanaInfo)); 
      thanaName.add(thanaInfoName); 
      thanaMobileNumber.add(thanaInfoMobile); 
      c.moveToNext(); 
     } 
     c.close(); 
     return thanaName; 

    } 
//________________________________________________________________ adapter class starts 
    class IconicAdapter extends ArrayAdapter { 
     public IconicAdapter() { 
      super(ThanaActivity.this,R.layout.custom_listview,R.id.textViewInstituateName,thanaName); 
     } 

     @Override 
     public View getView (int position, View v,ViewGroup parent){ 
      View row =super.getView(position, v, parent); 
      TextView thanaNumber = (TextView)row.findViewById(R.id.textViewInstituateNumber); 

      thanaNumber.setText(thanaMobileNumber.get(position)); 
      return (row); 

     } 
    } 



} 
+0

whats's [position] 'и' thanaMobileNumber'? –

+0

thanaMobileNumber - это список типов String .. в моем эмуляторе я вижу этот списокView, но я не могу получить этот текст –

+0

на самом деле, я хочу, если кто-то нажмет на listItem, тогда он показывает тост с позицией и itemText. –

ответ

1

Попробуйте это,

public class ThanaActivity extends Activity implements OnItemClickListener{ 


    //DatabaseOperation dbOperation = new DatabaseOperation(this); 
    List <String> thanaName = new ArrayList<String>(); 
    List <String> thanaMobileNumber = new ArrayList<String>(); 
    private String clickedItemNameDistrict ; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_thana);      
     populateArrayListOfDhakaDistrict(); 

    } 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
     // TODO Auto-generated method stub 
     String clickedItemNumberThana = thanaMobileNumber.get(position); 

     Toast.makeText(this, "number is:"+clickedItemNumberThana, Toast.LENGTH_SHORT).show(); 
     TextView textV = (TextView)findViewById(R.id.textViewInstituateNumber); 
     String hi= textV.getText().toString(); 
     System.out.println("clicked item number is:"+hi); 
    } 
    /* // this method does not work when i click on list item 
    public void onListItemClick (ListView parent, View v, int position, long id) { 

    }*/ 


    public void populateArrayListOfDhakaDistrict() { 
     List <String> thanaInfoList = getAllThanaInfo();   
     ListView listView = (ListView)findViewById(R.id.listViewInstituate); 
     listView.setOnItemClickListener(this); 
     listView.setChoiceMode(listView.CHOICE_MODE_SINGLE); //this line no work 
     listView.setAdapter(new IconicAdapter()); 

     } 

    public List <String> getAllThanaInfo() { 
     dbOperation.open(); 

     Cursor c= dbOperation.getThanaInfo(); 
     c.moveToFirst(); 
     while (! c.isAfterLast()) { 

      String thanaInfoName = c.getString(c.getColumnIndex("thana_name")); 
      String thanaInfoMobile = c.getString(c.getColumnIndex("mobile_no")); 
      String thanaInfoTelephone = c.getString(c.getColumnIndex("telephone_no")); 
      //String teleInfo = new String (c.getColumnIndex(thanaInfo)); 
      thanaName.add(thanaInfoName); 
      thanaMobileNumber.add(thanaInfoMobile); 
      c.moveToNext(); 
     } 
     c.close(); 
     return thanaName; 

    } 
//________________________________________________________________ adapter class starts 
    class IconicAdapter extends ArrayAdapter { 
     public IconicAdapter() { 
      super(ThanaActivity.this,R.layout.custom_listview,R.id.textViewInstituateName,thanaName); 
     } 

     @Override 
     public View getView (int position, View v,ViewGroup parent){ 
      View row =super.getView(position, v, parent); 
      TextView thanaNumber = (TextView)row.findViewById(R.id.textViewInstituateNumber); 
      //thanaNumber.setText(s[position]); 
      thanaNumber.setText(thanaMobileNumber.get(position)); 
      return (row); 

     } 
    } 
} 

1.You не установлен приемник для listview в populateArrayListOfDhakaDistrict() так добавил listView.setOnItemClickListener(this); 2.You просто положить onListItemClick метод для обработки нажмите но onItemClick дозвонились при нажатии на кнопку список

+0

добавьте информацию о том, что вы изменили. –

+0

просто реализовать OnItemClickListener? –

+0

проверить отредактированный пост @silvia_aut – SathishKumar

0

использование

TextView textV = (TextView)v.findViewById(R.id.textViewInstituateNumber); 

для извлечения текста из TextView выбранной строки в ListView

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