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

내 데이터베이스 클래스를 사용하고있는 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 
    } 
}