我如何从 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
    }

});