ボタンのテキストを変数に保存したい。
この記事を参照しましたが、「1つのボタンに1つの変数」を定義しています。私のアプリには約80〜90個のボタンがあります。これらのボタンのいずれかからのデータを単一の変数に保存し、その共通の変数を以降の操作に使用するにはどうすればよいですか?
例 -
私はボタンを持っています-1、2、3、4、5、6、7、8、9
btn = (Button) findViewById
Javaでそれらを単一のボタン(...もの)に初期化して、単一の変数でテキストを取得するにはどうすればよいですか?Coz私はJavaで90個のボタンを個別に定義することはできません!!
これどうやってするの?
これがiveが行ったことのコードです..(完全に愚かで非効率的な方法)-
基本的には、12個のボタンのうち、どちらが押されても、文字列で連結します。たとえば、1を押すと文字列は01になり、その後10を押すと文字列は0110になります。
public class FEa extends Activity implements View.OnClickListener
{
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12;
TextView tvDisp;
String acc;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fea);
initialise();
}
private void initialise()
{
b1 = (Button) findViewById (R.id.Btn1);
b1.setOnClickListener(this);
b2 = (Button) findViewById (R.id.Btn2);
b2.setOnClickListener(this);
b3 = (Button) findViewById (R.id.Btn3);
b3.setOnClickListener(this);
b4 = (Button) findViewById (R.id.Btn4);
b4.setOnClickListener(this);
b5 = (Button) findViewById (R.id.Btn5);
b5.setOnClickListener(this);
b6 = (Button) findViewById (R.id.Btn6);
b6.setOnClickListener(this);
b7 = (Button) findViewById (R.id.Btn7);
b7.setOnClickListener(this);
b8 = (Button) findViewById (R.id.Btn8);
b8.setOnClickListener(this);
b9 = (Button) findViewById (R.id.Btn9);
b9.setOnClickListener(this);
b10 = (Button) findViewById (R.id.Btn10);
b10.setOnClickListener(this);
b11 = (Button) findViewById (R.id.Btn11);
b11.setOnClickListener(this);
b12 = (Button) findViewById (R.id.Btn12);
b12.setOnClickListener(this);
tvDisp=(TextView) findViewById (R.id.TxtViewDisplay);
}
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.Btn1:
if(acc == null)
{
acc = "01";
tvDisp.setText("String Is:" + acc);
}
else
{
acc=acc + "0"+1;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn2:
if(acc == null)
{
acc = "02";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+2;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn3:
if(acc == null)
{
acc = "03";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+3;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn4:
if(acc == null)
{
acc = "04";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+4;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn5:
if(acc == null)
{
acc = "05";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+5;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn6:
if(acc == null)
{
acc = "06";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+6;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn7:
if(acc == null)
{
acc = "07";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+7;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn8:
if(acc == null)
{
acc = "08";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0"+8;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn9:
if(acc == null)
{
acc = "09";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + "0" +9;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn10:
if(acc == null)
{
acc = "10";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + 10;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn11:
if(acc == null)
{
acc = "11";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + 11;
tvDisp.setText("String Is:" + acc);
}
break;
case R.id.Btn12:
if(acc == null)
{
acc = "12";
tvDisp.setText("String Is:" + acc);
}
else
{
acc = acc + 12;
tvDisp.setText("String Is:" + acc);
}
break;
}
}
}