Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to get string from selected item of SimpleCursorAdapter?
    text
    copied!<p>I'm using an AutoCompleteTextView to suggest user some words from my sqlite db as they type the input string to search.</p> <p>I try to make the suggestion look friendly by using simple_list_item_2, here's my code:</p> <pre><code>package com.suit.kamus; import android.app.Activity; import android.database.Cursor; import android.database.MatrixCursor; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.SimpleCursorAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class SuitAuto extends Activity implements TextWatcher{ AutoCompleteTextView auto; TextView result; Button search; Button add; Spinner chooser; String input; static String selection; String main; String[] options = {"en to ina", "ina to en"}; SimpleCursorAdapter simple; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); auto = (AutoCompleteTextView)findViewById(R.id.auto); auto.addTextChangedListener(this); result = (TextView)findViewById(R.id.result); chooser = (Spinner)findViewById(R.id.chooser); ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(this,android.R.layout.simple_spinner_item, options); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); chooser.setAdapter(adapter); KamusDbAdapter dbHelper = new KamusDbAdapter(getApplicationContext()); dbHelper.open(); String status = dbHelper.getstatedb(); selection = status; dbHelper.close(); if (selection.equalsIgnoreCase("en")){ chooser.setSelection(0); } else {chooser.setSelection(1);} Log.d("statelang", selection); add = (Button)findViewById(R.id.add); add.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub startAdding(main); } }); chooser.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub if (chooser.getSelectedItemId() == 0){ selection = "en"; select(); updateDb(); }else{ selection = "ina"; select(); updateDb(); } } public void onNothingSelected(AdapterView&lt;?&gt; arg0) { // TODO Auto-generated method stub } }); auto.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub main = auto.getText().toString(); //Log.v("CURSOR",finish); result.setText(""); auto.setText(""); } }); } public void startAdding(String dWord) { // TODO Auto-generated method stub KamusDbAdapter adding = new KamusDbAdapter(getApplicationContext()); adding.open(); adding.Favorite(dWord); adding.close(); } protected void updateDb() { // TODO Auto-generated method stub KamusDbAdapter save = new KamusDbAdapter(getApplicationContext()); save.open(); save.updatestatedb(selection); save.close(); } public static String select() { // TODO Auto-generated method stub Log.v("STRING",selection); return selection; } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub input = auto.getText().toString(); KamusDbAdapter x = new KamusDbAdapter(getApplicationContext()); x.open(); Cursor cur = x.getCall(input, selection); //getCall is in KamusDbAdapter class, it used to return result cursor from sqlite db //i use rawQuery "SELECT * FROM en_to_ina WHERE word LIKE 'input%'" x.close(); String[] displayFields = new String[] {"word", "meaning"}; int[] displayViews = new int[] { android.R.id.text1,android.R.id.text2 }; simple = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cur,displayFields, displayViews); auto.setAdapter(simple); } } </code></pre> <p>I got a problem with retrieving the string from clicked item. It is in:</p> <pre><code>auto.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub main = auto.getText().toString(); //Log.v("CURSOR",finish); result.setText(""); auto.setText(""); } }); </code></pre> <p>I need both strings from word and meaning fields. Any response would be great...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload