-1

アイテムのIDを取得しようとしています。Spinnerで選択しました。私はAndroid Studioの新しいプログラマーです。取得するには、アイテムの位置、アイテムのIDを取得する方法SQLiteからスピナーを選択するAndroid

私は断片

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; 
} 

私のクラスに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; 
    } 
} 

マイDatabaseクラスを使用していますsqlliteデータベースからではない値である

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; 
} 

問題を追跡できません。

+2

ショー 'loadSpinnerDataHama()'関数のコード –

+0

あなたのアダプターにどのようなデータを結合していますか?それがスピナーオブジェクトであれば、あなたのオブジェクトに 'parent.getSelectedItem()'をキャストし、あなたのクラスの 'getId()'メソッドを呼び出すことができます。 – Pztar

答えて

0
@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 
    } 

}); 
+0

ありがとうございました!! ...私が必要とするもの! – Ric

+0

お手伝いします! :) –

0

コードをこのように変更します。

@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 
    } 
} 
関連する問題