Search code examples
androidsqlitelistviewsimplecursoradapter

How to get value of Selected Listview item to String?


I have a custom ListView, and the data in it comes from SQLite Database. I have used Cursor and Simple Cursor Adapter to populate the List View.

After setting OnItemClickListener, i cannot get the value of the selected item to string. I have tried lv.getSelectedItemPosition(position) but it is not working. Can anyone help?

Adapater Class Code

public class AllBankBranch_adapter extends BaseAdapter {

Activity macactivity;
ArrayList<all_bankbranch> list2;

public AllBankBranch_adapter(Activity activity, ArrayList<all_bankbranch> list){
    super();
    this.macactivity = activity;
    list2 = list;
}

@Override
public int getCount() {
    return list2.size();
}

@Override
public Object getItem(int position) {
    return list2.get(position);
}

@Override
public long getItemId(int position) {
    return 0;
}
private class ViewHolder{

    TextView bankbranchcity;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    final ViewHolder holder;
    LayoutInflater inflater = macactivity.getLayoutInflater();
    convertView = inflater.inflate(R.layout.engineeringcollbankbranch_listview,null);
    holder = new ViewHolder();
    holder.bankbranchcity = (TextView) convertView.findViewById(R.id.tv_enggcoll_bankbranch_city);
    holder.bankbranchcity.setText(list2.get(position).getBankCity());
    return convertView;
}

}

Retrieving data from Database:

 public List<all_bankbranch> getallbank(String city){

    List<all_bankbranch> banklist = new ArrayList<all_bankbranch>();
    String query = "Select BankBranch, BankAddress from all_bankbranch where BankCity = " + city;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(query,null);

    if(cursor.moveToFirst()){
        do{
            all_bankbranch bbracnh = new all_bankbranch();
            bbracnh.setBankBranch(cursor.getString(2));
            bbracnh.setBankAddress(cursor.getString(3));

            banklist.add(bbracnh);
        }
        while (cursor.moveToNext());
    }
    return banklist;
}

MainActivity Code

 ListView allbankbranch;
Cursor curbb;
DB_AllBankBranch DABB;
SimpleCursorAdapter scabb;

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

    DABB = new DB_AllBankBranch(this);
    banksearchbar = (EditText) findViewById(R.id.et_enggcoll_bankbranch_searchbar);
    curbb = DABB.select_bankcity();
    allbankbranch = (ListView) findViewById(R.id.lv_enggcoll_bankbranch);

    String[] columns = new String[]{"BankCity"};
    int[] to = new int[]{R.id.tv_enggcoll_bankbranch_city};

    scabb = new SimpleCursorAdapter(this, R.layout.engineeringcollbankbranch_listview, curbb, columns, to);
    if (curbb.getCount() > 0) {
        allbankbranch.setAdapter(scabb);
    }
 allbankbranch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


String s = allbankbranch.getItemAtPosition(position);

    }
    });

Solution

  • listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) 
    

    { String Name =((TextView)view.findViewById(R.id.price_name)).getText().toString();

    Log.d("string",Name);

            }
        });