gpt4 book ai didi

android - 如何从 SimpleCursorAdapter 的选定项中获取字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:53 24 4
gpt4 key购买 nike

我正在使用 AutoCompleteTextView 在用户键入要搜索的输入字符串时从我的 sqlite 数据库中建议一些词。

我尝试使用 simple_list_item_2 使建议看起来友好,这是我的代码:

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<String> adapter = new ArrayAdapter<String>(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<?> 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<?> arg0) {
// TODO Auto-generated method stub

}
});

auto.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> 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);

}
}

我在从点击的项目中检索字符串时遇到问题。它位于:

auto.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub

main = auto.getText().toString();
//Log.v("CURSOR",finish);
result.setText("");
auto.setText("");
}
});

我需要来自单词和含义字段的字符串。任何回应都会很棒...

最佳答案

您需要使用 http://developer.android.com/reference/android/widget/CursorAdapter.html#getItem(int) .

Cursor cursor = (Cursor) simple.getItem(position);
// retrieve the data from the cursor

关于android - 如何从 SimpleCursorAdapter 的选定项中获取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com