我如何从 SQLite Android 获取 Spinner 的 itemSelect 的 ID
How I get the Id of an itemSelect of a Spinner from SQLite Android
我正在尝试获取在 Spinner 上选择的项目的 ID,我是 Android Studio 的新程序员,我使用适配器,但我唯一想到的是项目的位置, 不是 sqllite 数据库中的值
我正在使用片段
public class FragmentVentas extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
DBVentas dbv = new DBVentas(getActivity(), "DBVentas", null, 1);
db = dbv.getWritableDatabase();
final View view = inflater.inflate(R.layout.fragment_fragment_ventas, container, false);
fSpinClientes = (Spinner) view.findViewById(R.id.spinnerClientesVentas);
loadSpinnerDataHama();
public void onItemSelected(AdapterView << ? > parent, View view, int pos, long id) {
String list = parent.getItemAtPosition(pos).toString();
Integer l = parent.getSelectedItemPosition();
//showing selected spinner item
Toast.makeText(parent.getContext(), "You selected: " + list + " Pos: " + l + " l1", Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView << ? > arg0) { // do nothing
}
});
return view;
}
我的 Class SpinerObject
public class SpinnerObject {
private int databaseId;
private String databaseValue;
public SpinnerObject ( int databaseId , String databaseValue ) {
this.databaseId = databaseId;
this.databaseValue = databaseValue;
}
public int getId () {
return databaseId;
}
public String getValue () {
return databaseValue;
}
@Override
public String toString () {
return databaseValue;
}
}
我的数据库Class
public class DBVentas extends SQLiteOpenHelper {
public List < SpinnerObject> getAllLabels(){
List < SpinnerObject > labels = new ArrayList < SpinnerObject > ();
// Select All Query
String selectQuery = "SELECT idCliente, Nombre FROM Clientes";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if ( cursor.moveToFirst () ) {
do {
labels.add ( new SpinnerObject (Integer.parseInt(cursor.getString(0)), cursor.getString(1) ) );
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning labels
return labels;
}
无法跟踪问题。
以这种方式更改您的代码。
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (parent.getItemAtPosition(pos).toString().equals(YOUR_STRING_HERE)){
//Do something if YOUR_STRING_HERE is selected
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
SpinnerObject item = (SpinnerObject) parent.getItemAtPosition(pos);
String databaseValue = item.getValue();
int databaseId = item.getId();
}
public void onNothingSelected(AdapterView<?> arg0) {
// do nothing
}
});
我正在尝试获取在 Spinner 上选择的项目的 ID,我是 Android Studio 的新程序员,我使用适配器,但我唯一想到的是项目的位置, 不是 sqllite 数据库中的值
我正在使用片段
public class FragmentVentas extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
DBVentas dbv = new DBVentas(getActivity(), "DBVentas", null, 1);
db = dbv.getWritableDatabase();
final View view = inflater.inflate(R.layout.fragment_fragment_ventas, container, false);
fSpinClientes = (Spinner) view.findViewById(R.id.spinnerClientesVentas);
loadSpinnerDataHama();
public void onItemSelected(AdapterView << ? > parent, View view, int pos, long id) {
String list = parent.getItemAtPosition(pos).toString();
Integer l = parent.getSelectedItemPosition();
//showing selected spinner item
Toast.makeText(parent.getContext(), "You selected: " + list + " Pos: " + l + " l1", Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView << ? > arg0) { // do nothing
}
});
return view;
}
我的 Class SpinerObject
public class SpinnerObject {
private int databaseId;
private String databaseValue;
public SpinnerObject ( int databaseId , String databaseValue ) {
this.databaseId = databaseId;
this.databaseValue = databaseValue;
}
public int getId () {
return databaseId;
}
public String getValue () {
return databaseValue;
}
@Override
public String toString () {
return databaseValue;
}
}
我的数据库Class
public class DBVentas extends SQLiteOpenHelper {
public List < SpinnerObject> getAllLabels(){
List < SpinnerObject > labels = new ArrayList < SpinnerObject > ();
// Select All Query
String selectQuery = "SELECT idCliente, Nombre FROM Clientes";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if ( cursor.moveToFirst () ) {
do {
labels.add ( new SpinnerObject (Integer.parseInt(cursor.getString(0)), cursor.getString(1) ) );
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning labels
return labels;
}
无法跟踪问题。
以这种方式更改您的代码。
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (parent.getItemAtPosition(pos).toString().equals(YOUR_STRING_HERE)){
//Do something if YOUR_STRING_HERE is selected
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
SpinnerObject item = (SpinnerObject) parent.getItemAtPosition(pos);
String databaseValue = item.getValue();
int databaseId = item.getId();
}
public void onNothingSelected(AdapterView<?> arg0) {
// do nothing
}
});