0

値がSqliteから派生したスピナーで選択された値のIDを取得したい。

Sqliteの私のテーブルは

CITY_ID CITY_NAME

8 ボンベイ
9 ニューデリー
10
マドラス 11 カルカッタ
12 バンガロール
13 アーメダバード
14ジャイプール
15 チャンディガル
16 シムラ
17 ラクナウ
18 パトナ
19 ボパール
20 ナグプール

私のデータベース コネクタ コードは

public List<String> getCity(){
    List<String> labels = new ArrayList<String>();

    String selectQuery = "SELECT  CITY_ID, CITY_NAME FROM city_list";

    Log.d("Destination Country Query", selectQuery);

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {                
            labels.add(cursor.getString(1));
        } while (cursor.moveToNext());
    }

    cursor.close();
    db.close();

    return labels;
}

私の実装は

city = (Spinner) findViewById(R.id.city);
loadCityData();

private void loadCityData() {

    DatabaseConnector db = new DatabaseConnector(getApplicationContext());

    List<String> lables = db.getCity();

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, lables);

    dataAdapter
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    city.setAdapter(dataAdapter);

}

スピナーで都市を選択します。SQlite テーブルから ID を取得したい。

これを達成するために私を導くことができますか?

前もって感謝します。

よろしく、 ディネシュ

4

2 に答える 2

1

Arraylist に値を追加する

    final ArrayList<Devstatus> statusList = new ArrayList<Devstatus>();

    Devstatus tempstatus = new Devstatus();
    tempstatus.setDevStatusName("BOMBAY ");
    tempstatus.setDevStatusValue("8");

    Devstatus tempstatus1 = new Devstatus();
    tempstatus1.setDevStatusName(" NEW DELHI ");
    tempstatus1.setDevStatusValue("9");

    statusList.add(tempstatus);
    statusList.add(tempstatus1);

セッティングアダプター

    SpinnerAdapter stateAdaptor = new SpinnerAdapter(SettingActivity.this,statusList);
    status.setAdapter(stateAdaptor);
    status.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3) {
            changeStatus(statusList.get(position));
            selected = statusList.get(position).getDevStatusName();
        }

        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

スピナーアダプター

 class SpinnerAdapter extends BaseAdapter {
    LayoutInflater mInflater;
    ArrayList<Devstatus> statusList;

    public SpinnerAdapter(Context context, ArrayList<Devstatus> countryList) {
        mInflater = LayoutInflater.from(context);
        this.statusList = countryList;
    }

    public int getCount() {
        return this.statusList.size();
    }

    public Devstatus getItem(int position) {
        return (Devstatus) this.statusList.get(position);
    }

    public long getItemId(int position) {
        return (position);
    }

    public View getView(final int position, View convertView,
            ViewGroup parent) {
        ViewHolder holder;

        Devstatus tempState = (Devstatus) this.statusList.get(position);

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.state, null);
            holder = new ViewHolder();
            holder.adtitle = (TextView) convertView.findViewById(R.id.tvstate);

            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();

        }
        holder.adtitle.setText(tempState.getDevStatusName());
        return convertView;
    }

    class ViewHolder {
        TextView adtitle;

    }
}

セッターとゲッター

public class Devstatus 
{
private String devStatusName;
private String devStatusValue;


public String getDevStatusName() 
{
    return devStatusName;
}

public void setDevStatusName(String devStatusName) 
{
    this.devStatusName = devStatusName;
}

public String getDevStatusValue() 
{
    return devStatusValue;
}

public void setDevStatusValue(String devStatusValue) 
{
    this.devStatusValue = devStatusValue;
}
}
于 2013-08-06T05:48:24.207 に答える
0

あなたは値のように設定city nameしていspinnerます。の位置を取得し、asのcity id値を設定してから、その位置と値を取得できます..または、e を使用して、取得している位置にその値をマッピングできます。spinnercity_idcity_namcity_id

ポジションの0場合はbombay、ポジション 0セットの場合city_idはとしましょう8。そのように。

  spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Log.i("cyberwalker", "item selected" + arg2);
            if (arg2 == 0) {
                city_id=8;
            } else if (arg2 == 1) {
                city_id=9;
            } else if (arg2 == 2) {
                city_id=10;
            }
                            ......

        }

同様に、そのコードは最適化されていません。

于 2013-08-06T05:47:58.727 に答える