1

私は動的に追加する必要があるプロジェクトにも取り組んでいTextViewますSpinner。プログラムからこれら2つを動的に追加することができました。

スピナーでいくつかのアイテムを選択しようとしたとき、それらのアイテムを選択していませんでした。

そのアイテムをで選択させるために何かする必要がありますSpinnerか?

for (Map.Entry<String, String> entry : mapColumns.entrySet()) {

    spinnerArray = new ArrayList<String>();

    final TextView rowTextView = new TextView(cont);
    final Spinner spinner = new Spinner(cont);

    rowTextView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    spinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    for(String s: entry.getValue().split(",")) {
        System.out.println(s);
        s = s.replaceAll("[^a-zA-Z0-9]+","");

        spinnerArray.add(s);
    }

    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(cont, android.R.layout.simple_spinner_dropdown_item, spinnerArray);

    rowTextView.setText(entry.getKey());
    rowTextView.setTypeface(null, Typeface.BOLD);
    spinner.setAdapter(spinnerArrayAdapter);

    layout.addView(rowTextView);
    layout.addView(spinner);
}

ここでmapColumnsは、キーと値のペアを作成します。したがって、スピナーでは、すべてのアイテムがそのマップの値から表示されます。

問題文:-

ここで、スピナーで誰かがアイテムを選択している場合は、それが選択されて肉眼で見えるようにする必要があります。

コードに基づいてそれを行うにはどうすればよいですか。助けてくれてありがとう。

以下は画像です-

ここに画像の説明を入力してください

4

2 に答える 2

1

このコードを使用してみてください:

ArrayAdapter<String> spinnerArrayAdapter  = new ArrayAdapter<String>(con,
        android.R.layout.simple_spinner_item, spinnerArray);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
于 2013-03-24T23:19:14.710 に答える
0

OnItemSelectedListenerをスピナーに追加します。

spinner.setAdapter(spinnerArrayAdapter);

// add the listener
spinner.setOnItemSelectedListener(this);

次に、アクティビティにリスナーを実装します。

public void onItemSelected(AdapterView<?> parent, View view, 
        int pos, long id) {
    // An item was selected. You can retrieve the selected item using
    // parent.getItemAtPosition(pos)
}

public void onNothingSelected(AdapterView<?> parent) {
    // Another interface callback
}
于 2013-03-24T21:44:42.230 に答える