1

単純な Android UI デザインの問題だと思っていたものを手に入れましたが、数日間ぐるぐる回っています。XML をダウンロードして Android アプリのフォームに XML を表示する REST サービスがあります。私はWebページを構築しており、Android、同じオプション、同じURLがAndroidまたはWebページからRESTサービスに送信されることでこれを模倣しています。HTML を使用すると、さまざまな ID/表示項目のチェックボックス グループとラジオボタン/ドロップダウンを簡単に作成できるため、たとえば、惑星オプションを次のように表示できます。

<select name="planet"><option value="0">Mercury</option></select>

1 つは id で、もう 1 つは表示するユーザーフレンドリーなテキストのペアの値を持つ Android で同様のことをしたかったのです。そこで、android.util.Pair を使用してアダプターを作成することにしました。

  public class PairView extends Pair<String, String> {
    public PairView(String first, String second) {
      super(first, second);
    }

    public String toString() {
      return second;
    }
  }

  public class PairAdapter extends ArrayAdapter<PairView> {
  }

これで、自分の ID を pair.first に入れ、ユーザーに何を表示するかを pair.second に入れることができます。

私の問題は、これらのオプションの一部が単一選択になり、一部が複数選択になることです。HTML では、これは問題ではありません。複数選択にはチェックボックス グループを使用し、単一選択にはラジオ ボタン/ドロップダウンを使用します。ただし、Androidでは、それほど単純ではないようです。アダプターに Spinners を使用してみましたが、Spinner では単一選択しかできないようです。AlertDialog.Builder では、単一選択と複数選択が可能ですが、不思議なことに、複数選択用のアダプターを使用するオプションが表示されません。単一選択用です。

私が本当に望んでいるのは、すべてのオプションの一貫した外観であり、単一選択にはラジオボタンが表示され、複数選択にはチェックボックスが表示され、アダプターを介して、選択したアイテムのペアから ID を取得できるようにすることだと思います。

どのようなアプローチを使用する必要がありますか? 複数選択用のコードが追加されたカスタム スピナー? AlertDialog.Builder で、どうにかして複数選択用のアダプターを使用しますか? 単純な Alert を作成して ListView をラップするだけですか? (うまくいけば)より簡単な別のオプションはありますか?

ここで非常に基本的な何かが欠けているように感じます。

4

1 に答える 1

1

私が作っていたアプリで同様の状況があったので、私が選んだものを共有します. さまざまな種類の質問があり、それに応じてアクティビティから削除したり追加したりしました。ラジオボタンの場合、要素を使用して使用しました。多肢選択式の質問では、チェックボックス ベースのビューが必要だったので、レイアウト内に空を追加し、コードに CheckBox を追加しました。

キャプションと値は、ラジオボタンとチェックボックスは setText で表示テキストを設定し、任意のオブジェクト/値をタグとして追加できます。だから私がやっていたことは次のようなものでした:

CheckBox option = new CheckBox(MyActivity.this);
option.setText("Option 1");
option.setTag(10);

後で選択したオプションを取得すると、そのタグを取得してその値を使用できます。

これは、私が簡単に見つけた方法の 1 つにすぎません。お役に立てれば

于 2012-04-18T19:49:50.580 に答える