2017-11-08 3 views
1

テストで5つの選択肢があります。私はヘッダーと回答を読むcsvデータベースを持っています。ボタンの1つを押すと、ボタンのテキストを次のヘッダーに変更します。私はそのために "for"ループを使いたいと思います。どのように私は同じレイアウトを維持しますが、このforループのボタンのテキストを変更しますか?テストで5つの選択肢があります。私はcsvデータベースを持っています。ボタンの1つを押すと、ボタン上のテキストを次のヘッダーに変更します。

public class MainActivity extends AppCompatActivity { 

int say,may=0; 

Button a,b,c,d,e; 
private List<WeatherSample> weatherSamples=new ArrayList<>(); 
String[][] deneme=new String[20][7]; 

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

    final Button asikki = (Button) findViewById(R.id.asikki); 
    final Button bsikki = (Button) findViewById(R.id.bsikki); 
    final Button csikki = (Button) findViewById(R.id.csikki); 
    final Button dsikki = (Button) findViewById(R.id.dsikki); 
    final Button esikki = (Button) findViewById(R.id.esikki); 

    String line = ""; 
    a = (Button) findViewById(R.id.asikki); 
    b = (Button) findViewById(R.id.bsikki); 
    c = (Button) findViewById(R.id.csikki); 
    d = (Button) findViewById(R.id.dsikki); 
    e = (Button) findViewById(R.id.esikki); 

    InputStream is = getResources().openRawResource(R.raw.data); 

    BufferedReader reader = new BufferedReader(
      new InputStreamReader(is, Charset.forName("UTF-8")) 
    ); 

    try { 
     // step over header line 
     reader.readLine(); 

     while ((line = reader.readLine()) != null) { 

      may++; 
      String sira = Integer.toString(may); 
      String[] tokens = line.split(","); 
      WeatherSample sample = new WeatherSample(); 

      deneme[may][0] = tokens[0]; 
      deneme[may][1] = tokens[1]; 
      deneme[may][2] = tokens[2]; 
      deneme[may][3] = tokens[3]; 
      deneme[may][4] = tokens[4]; 
      deneme[may][5] = tokens[5]; 
      deneme[may][6] = tokens[6]; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    for (int say=0;say<10;say++){ 
     a.setText("A) " + deneme[1][0]); 
     b.setText("B) " + deneme[1][1]); 
     c.setText("C) " + deneme[1][2]); 
     d.setText("D) " + deneme[1][3]); 
     e.setText("E) " + deneme[1][4]); 

     asikki.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       asikki.setText("bilgin"); 
       asikki.setBackgroundColor(Color.BLACK); 
       asikki.setTextColor(Color.WHITE); 
      } 
     }); 

     bsikki.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       bsikki.setText("bilgin"); 
       bsikki.setBackgroundColor(Color.BLACK); 
       bsikki.setTextColor(Color.WHITE); 
      } 
     }); 

     csikki.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       csikki.setText("bilgin"); 
       csikki.setBackgroundColor(Color.BLACK); 
       csikki.setTextColor(Color.WHITE); 
      } 
     }); 

     dsikki.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       dsikki.setText("bilgin"); 
       dsikki.setBackgroundColor(Color.BLACK); 
       dsikki.setTextColor(Color.WHITE); 
      } 
     }); 

     esikki.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       esikki.setText("bilgin"); 
       esikki.setBackgroundColor(Color.BLACK); 
       esikki.setTextColor(Color.WHITE); 
      } 
     }); 

    } 

} 
+1

Androidの質問の場合は、Androidタグを使用してください。 Androidの答えは、ラップトップでのJava Swingの場合とまったく同じではありません。 – ajb

答えて

0

forループはすぐに実行されるものです、それは待っていない、あなただけのリスナーが必要@Happyへ

asikki.setText(deneme[0][0]); 
    asikki.setBackgroundColor(Color.BLACK); 
    asikki.setTextColor(Color.WHITE); 

    asikki.setOnClickListener(new View.OnClickListener() { 
     int say = 1; 
     public void onClick(View v) { 
       // TODO check say isn't out of bound 
      asikki.setText("A) " +deneme[say++][0]); 
     } 
    }); 
+0

ありがとうございました。それは正常に動作しています。 –

0

おかげで、今私は私のコードに次の行があります

int say = 1; 
asikki.setText(deneme[0][0]); 
asikki.setBackgroundColor(Color.BLACK); 
asikki.setTextColor(Color.WHITE); 

asikki.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     say++; 
     asikki.setText("A) " +deneme[say][1]); 
     bsikki.setText("B) " +deneme[say][2]); 
     csikki.setText("C) " +deneme[say][3]); 
     dsikki.setText("D) " +deneme[say][4]); 
     esikki.setText("E) " +deneme[say][5]); 
    } 
}); 
関連する問題