如何根据点击的按钮创建一个更改内容的文本视图? (机器人,蚀)

时间:2014-08-15 05:46:53

标签: java android eclipse

enter image description here我有一个带按钮的页面,我想为每个按钮放置一个描述栏,所以当有人按下按钮时,文本会根据点击的按钮而改变。

所以我厌倦了设置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中获取文本,每个按钮都有自己的文本。

2 个答案:

答案 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());


        }
    });