0

に基づいて配列の内容を表示しようとしていますRadioButtons。ボタンは2セット使っています。[x, y]ボタンは私の配列を指す必要があります。String配列の値が表示されます (を使用Toast)。

はい、私はこれに慣れていませんが、運が悪いいくつかの同様の例を選別しようとしました。

public class MainActivity extends Activity {
    String[][] tipSize = {
            {"N/A","N/A","Pink","Lt Blue","Purple","Yellow","Brown","Orange","Tan","Blue","White","Beige"},
            {"N/A","Pink","Lt Blue","Purple","Yellow","Brown","Orange","Green","Tan","Blue","White","Beige"},
            {"N/A","N/A","Pink","Purple","Turquoise","Yellow","Green","Tan","Blue","White","Red","No Tip"},
            {"Pink","Lt Blue","Purple","Yellow","Orange","Green","Tan","Blue","Red","Beige","Gray","N/A"},
            {"Pink","Lt Plue","Purple","Orange","Green","Tan","Blue","White","Beige","Black","Gray","N/A"},
            {"Pink","Lt Blue","Yellow","Brown","Orange","Green","Tan","Blue","White","Beige","Black","N/A"},
            {"Pink","Lt Blue","Yellow","Brown","Tan","Blue","White","Red","Beige","Black","No Tip","N/A"},
            {"Pink","Lt Blue","Purple","Yellow","Orange","Green","Tan","Blue","Red","Beige","Gray","N/A"},
    };

private RadioGroup dispenser,ounce_pg;
private RadioButton disp,o_pg;
String tip = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button finishBtn = (Button) findViewById(R.id.button1);
    finishBtn.setOnClickListener (new View.OnClickListener() {      
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            MainActivity.this.showit(); 
        }
    });     
}

protected void showit() {
    // TODO Auto-generated method stub
    disp = (RadioButton) findViewById(R.id.dispenser);
    o_pg = (RadioButton) findViewById(R.id.ounce_pg);
    tip = String tipSize [disp,o_pg];
    // tip is the displayed answer (Color of tip), tipSize[][] is the Array, disp is RadioButton 1 - o_pg is Radio Button 2 values. 

    Toast.makeText(MainActivity(),tip,Toast.LENGTH_LONG).show();
}

}
4

2 に答える 2

0

手っ取り早い方法は、2番目の値をグループ化する区切り文字列を含む文字列の単純な配列を作成し、それ自体が文字列配列を返すsplit関数を使用して個々の値を取得することです。

String [] allTips = {"a;b;c", "d;e;f"};
String [] sometips = alltips[1].split(";")
String tip = sometips[2];

手紙になりますf

于 2013-03-10T01:09:18.577 に答える
0

この行には多くの問題があります。

 tip = String tipSize [disp,o_pg];
  1. [disp,o_pg][disp][o_pg]2D 配列へのアクセスはarray [x][y]

  2. String tipSizeここで型を宣言することはできません。もしそうなら、それはキャストであり、それは問題ありません(ただし、配列(String)があるため冗長になります- from aへのキャストは何もしません)。StringStringString

  3. dispo_pgある必要がありますint

これは、インデックスにアクセスするときにオブジェクトを配列に渡すことができず、配列が「検索」しないためです。これは、アクセスしたいポジションを把握し、それらを渡す必要があることを意味します。また、インデックスは0ではなくから始まることに注意してください1

コンパイル可能な例は次のとおりです。

tip = tipSize [0][0]; //first element of the first array ("N/A")
于 2013-03-10T01:03:12.630 に答える