2016-10-24 10 views
-2

ユーザが別のアクションではなくアクションを選択した場合、配列の要素を削除する方法を尋ねました。
私は文字列配列をArrayListにするための答えを得ました。スタジオ変更アレイ値パート2

ここで、その値に次の子を表示するために、自分のデータにid値を与える方法を知りたいと思います。
たとえば、ユーザーがギリシャに「はい」を押すと、ギリシャの都市を表示したいと考えています。

int randome=0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final Button no = (Button) findViewById(R.id.No); 
    final Button yes=(Button) findViewById(R.id.Yes); 
    final TextView tvMessage=(TextView) findViewById(R.id.tvMessage); 

    final ArrayList<String> country = new ArrayList<>(); 
    country.add("Do you wanna see an Action Movie???"); 
    country.add("Do you wanna see a Comedy Movie???"); 
    country.add("Do you wanna see a Drama Movie???"); 
    no.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (randome>=0 && randome<country.size()){ 
       country.remove(randome); 
       Random rand = new Random(); 
       randome = rand.nextInt(country.size()); 
       tvMessage.setText(country.get(randome)); 
      } 
     } 
    }); 
    yes.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Random rand = new Random(); 
      randome = rand.nextInt(country.size()); 
      tvMessage.setText(country.get(randome)); 


     } 
    }); 
} 

これは、私がArrayListで前回の質問の最初の部分に使ったことです。 ArrayListでそれを行う方法がない場合は、このような文字列配列で行う必要があります。

String[][] countriesAndCities= new String[][]; 
countriesAndCities [0][0] = "United Kingdom"; 
countriesAndCities [0][1] = "London"; 
countriesAndCities [1][0] = "USA"; 
countriesAndCities [1][1] = "Washington"; 
countriesAndCities [2][0] = "India"; 
countriesAndCities [2][1] = "New Delhi"; 
+0

あなたが何を求めているのか不明です。しかし、IDのある国/都市が必要な場合は、自分自身を文字列に限定しないでください。 'List cities'、または何か –

+0

を保持する' Country'クラスを作成し、アンドロイドでコードを実行するとwelcome(デフォルトのレイアウトはWelcomeです)と言うtextViewが1つ取得され、2つのボタンがありますあなたがウェルカムテキストで「はい」を押すと、ランドは国から質問を受け取ります(country.add( "あなたはアクション映画を見たいですか?"); country.add( "あなたはコメディ映画を見たいですか? ?); country.add( "あなたはドラマ映画を見たいですか?");)レイアウトを歓迎するためにそれを表示します。私が望むのは、ユーザーが "コメディ映画 "私は何とか別のアレイなどに格納されている映画を何とか表示したい。 – Kostasfra

答えて

1

ユーザープレスは、はい、私はあなたがチェックすることができ、別の配列またはその

のようなものの上に保存されている映画を表示するために何とかしたい「あなたはコメディ映画を見たいか」にする場合あなたがボタンをクリックしたときにテキストビューのテキストが何であるかを確認し、リスト/配列から適切なデータを取り出します。

final Random rand = new Random(); 
final TextView tvMessage=(TextView) findViewById(R.id.tvMessage); 

// Some prompts to compare against later 
final String actionMovie = "Do you wanna see an Action Movie???"; 
final ArrayList<String> prompts = new ArrayList<>(); 
prompts.add(actionMovie); 

// Your lists 
final ArrayList<String> actionMovies = new ArrayList<>(); 
actionMovies.add("Terminator 2"); 

// Setup the click event 
findViewById(R.id.Yes).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

     // Check which prompt is shown 
     if (tvMessage.getText().toString().equals(actionMovie)) { 

      // Get a random movie 
      String movieTitle = actionMovies.get(rand.nextInt(actionMovies.size())); 

     } else { } // equals something else 
    } 
+0

それは私が理解したかったことです、あなたの貴重な答えに感謝します。 – Kostasfra