我有一个带按钮的页面,我想为每个按钮放置一个描述栏,所以当有人按下按钮时,文本会根据点击的按钮而改变。
所以我厌倦了设置textviews,并在一个单独的xml文件中为每个人提供一个id,除了我在main xml中写的第一个,并编写了这段代码:
TextView dis;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.weapons);
dis = (TextView) findViewById(R.id.k_k);
......
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.kk_btn:
dis.setText(R.id.k_k);
break;
case R.id.ss_btn:
sp.play(soundId2, 1, 1, 0, 0, 1);
dis.setText(R.id.s_s);
break;
case R.id.hd_btn:
sp.play(soundId2, 1, 1, 0, 0, 1);
dis.setText(R.id.h_d);
break;
但它没有工作,它在文本应该是的地方写错。
示例:
它类似于一个包含2列的表,第一个包含按钮,第二个包含每个按钮的描述,但唯一的描述是单击按钮的描述。所以在第二列,文本会根据点击的按钮而改变,它会从textview中获取文本,每个按钮都有自己的文本。
答案 0 :(得分:1)
在您的创建中创建资源ID为textview
的{{1}}
R.id.k_k
并在dis = (TextView) findViewById(R.id.k_k);
onClick method
中使用资源ID为<{1}}
setText
您可以使用dis.setText(R.id.k_k);
作为描述
array
如果您想使用textview的ID,只需制作String[] descriptionArray={"this is button 1","this is button 2"};
//set onclick listener to your button
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dis.setText(descriptionArray[0]);
}
});
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dis.setText(descriptionArray[1]);
}
});
TextView array
将文字设置为TextView[] textViewArray={(TextView)findViewById(R.id.k_k),(TextView)findViewById(R.id.h_d) };
dis TextView
答案 1 :(得分:0)
如果问题只是在按钮点击的基础上得到描述,那么你可以尝试这个代码。在这种情况下,我得到了按钮文本,所以在你的情况下,你可以从字符串中获取描述。
result=(TextView) findViewById(R.id.textView1);
btn1=(Button) findViewById(R.id.button1);
btn2=(Button) findViewById(R.id.button2);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
result.setText(btn1.getText().toString());
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
result.setText(btn2.getText().toString());
}
});