Java 在文本视图中显示微调器中的选项
我有一个db,可以在微调器中显示一些值。。如何在文本视图中显示我选择的内容Java 在文本视图中显示微调器中的选项,java,android,android-sqlite,textview,android-spinner,Java,Android,Android Sqlite,Textview,Android Spinner,我有一个db,可以在微调器中显示一些值。。如何在文本视图中显示我选择的内容 // CREATE TABLE IF NOT EXISTS public void createTable() { try { mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null); mydb.execSQL("CREATE TABLE IF NOT EXISTS " +
// CREATE TABLE IF NOT EXISTS
public void createTable() {
try {
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE
+ " (ID INTEGER PRIMARY KEY, NAME TEXT, PLACE TEXT);");
mydb.close();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Errore durante la creazione della tabella",
Toast.LENGTH_LONG);
}
}
// THIS FUNCTION INSERTS DATA TO THE DATABASE
public void insertIntoTable() {
try {
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Cibo e Bevande','cibo')");
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Trasporti','trasporti')");
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Svago','svago')");
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Acquisti vari','acquisti')");
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Sanità','sanità')");
mydb.execSQL("INSERT INTO " + TABLE
+ "(NAME, PLACE) VALUES('Altro','altro')");
mydb.close();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"Error in inserting into table", Toast.LENGTH_LONG);
}
}
// THIS FUNCTION SHOWS DATA FROM THE DATABASE
public ArrayList<String> getTableValues() {
ArrayList<String> my_array = new ArrayList<String>();
try {
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
Cursor allrows = mydb.rawQuery("SELECT * FROM " + TABLE, null);
System.out.println("COUNT : " + allrows.getCount());
if (allrows.moveToFirst()) {
do {
String ID = allrows.getString(0);
String NAME = allrows.getString(1);
String PLACE = allrows.getString(2);
my_array.add(NAME);
TextView categorietext = (TextView) findViewById(R.id.sceltelabel);
categorietext.setText(NAME); // doesn't work. It display always "Altro"
} while (allrows.moveToNext());
}
allrows.close();
mydb.close();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Errore.",
Toast.LENGTH_LONG);
}
return my_array;
}
但它总是显示Altro
,如果我选择了其他内容,则不会在textview中更改。。谢谢请尝试以下代码:
String selecteditem = spinner.getselecteditem().tostring();
textview.settext(Selecteditem);
微调器有一个名为setonitemselectedlistener()的默认类,因为我们有一个名为onItemSelected()的方法,在该方法中,您可以编写此设置文本值。在活动中使用OnItemSelectedListener()
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
String selecteditem = spinner.getselecteditem().tostring();
textview.settext(Selecteditem);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图selectedItemView、整型位置、长id){
//你的代码在这里
字符串selecteditem=spinner.getselecteditem().tostring();
textview.settext(Selecteditem);
}
@凌驾
未选择公共无效(AdapterView父视图){
//你的代码在这里
}
});
但就我而言<代码>字符串名称=微调器.getselecteditem().tostring();categorietext.settext(名称)代码>?dude将此代码放在setonitemclicklistener方法中。每当您在微调器中选择任何项目时,它都会在textview中更新所选值。您可以使用我的代码显示吗?因为我做不到:(我从不使用spinners@David_D我可以在微调器中显示一些值这意味着什么?我如何在textview中显示我选择的内容?从何处选择?从微调器。它从db中获取值。(InsertIntTable()方法).噢..拜托david.在之前的评论中,你说你从未使用微调器?你正在活动中显示微调器,对吗?在该活动中执行上述代码?这有什么大不了的?好吧,我解释得更好..这是我遵循的示例,因为我不知道如何将微调器与db一起使用。现在我有一个显示insi的微调器de,在db中写入的值(在我的例子中是Cibo e Bevande、trasporti、altro等)…我现在只想在文本视图中显示我从这个微调器中选择的内容。如果我单击Cibo e Bevande
,文本视图将显示Cibo e Bevande
。现在明白了吗?
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
String selecteditem = spinner.getselecteditem().tostring();
textview.settext(Selecteditem);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});