2016-12-03 6 views
-2

Androidスタジオが初めてで、新しいコード作成方法を習得しようとしていますが、今は固執しています。たとえば、findViewByIdでStringを使用したいとします。findViewByIdを文字列でIDとして使用したい

public void BDate0(String BId, String BHistoryClass) { 
     bdatum0 = (Button) findViewById(R.id.BId); 
     bdatum0.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent BDatum0 = new Intent(bethistory.this, BHistoryClass.class); 
       startActivity(BDatum0); 
      } 
     }); 
    } 

と私は

BDate0(BId1, BHistory1); 

私は10個のボタンを持っており、彼らは開始アクティビティが毎日違うだろう、例えば文字列でBDate0を呼び出すしたいと思います。

ご迷惑をおかけして申し訳ありませんが、私の母国語ではありませんし、事前に助けていただきありがとうございます。

+0

私はあなたの質問がdublicateだと思う:R.drawable文字列を変換する[方法のhttp://stackoverflow.com/a/13116057/4376058 –

+0

が重複する可能性をアンドロイドでR.drawable整数形式に?](http://stackoverflow.com/questions/13115914/how-to-convert-r-drawable-string-to-r-drawable-integer-format-in-android) –

答えて

1

findViewById(..)の代わりにこのコードを使用できます。これは、識別子として文字列を使用することを可能にする必要があります。

String BId = "button1"; // for example 
int id = getResources().getIdentifier(BId, "id", getPackageName()); 
// finds R.id.button1 
bdatum0 = (Button) findViewById(id);