Java 如何创建一个文本视图,根据单击的按钮更改其内容?(android、eclipse)

Java 如何创建一个文本视图,根据单击的按钮更改其内容?(android、eclipse),java,android,eclipse,Java,Android,Eclipse,我有一个带有按钮的页面,我想为每个按钮放置一个描述栏,这样当有人按下按钮时,文本会根据单击的按钮而变化 因此,我厌倦了设置TextView,并在一个单独的xml文件中为每个TextView提供一个id,除了第一个,我在主xml中编写了它,并编写了以下代码: TextView dis; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub

我有一个带有按钮的页面,我想为每个按钮放置一个描述栏,这样当有人按下按钮时,文本会根据单击的按钮而变化

因此,我厌倦了设置TextView,并在一个单独的xml文件中为每个TextView提供一个id,除了第一个,我在主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;
但是它不起作用,它在文本应该出现的地方写错了

例如:


它有点像一个有两列的表,第一列包含按钮,第二列包含每个按钮的描述,但视图中唯一的描述是单击的按钮的描述。因此,在第二列中,文本根据单击的按钮而变化,它从文本视图中获取文本,每个按钮都有自己的按钮。

在oncreate中,您创建了一个资源id为
R.id.k\u k

dis = (TextView) findViewById(R.id.k_k);
在您的
onClick方法中
使用的是带有资源id的
setText

dis.setText(R.id.k_k);
您可以使用
数组
进行描述

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的ID,只需制作一个
textview数组

TextView[] textViewArray={(TextView)findViewById(R.id.k_k),(TextView)findViewById(R.id.h_d) };
将文本设置为
dis TextView

dis.setText(textViewArray[0].getText().toString());

如果问题仅仅是在按钮点击的基础上获取描述,那么您可以尝试此代码。在本例中,我获取了按钮文本,因此在您的情况下,您可以从字符串中获取描述

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


        }
    });

预期的结果是什么?我的文本视图@Rod_algonquinca中的文本您对预期的输出更加清楚,至少发布一些example@Kerppag我添加了一个示例你可以发布一张图片吗?我可以看到你当前的GUI吗?我不想更改按钮上的文本我想根据单击的按钮更改其他位置上的文本。我添加了图片来解释我的意思我理解你的问题,但这是同一活动中的描述还是不同?如果它在同一个活动中,而不仅仅是为不同的按钮存储不同的字符串,并在按钮上获取这些字符串,请单击并在说明中设置。我可以使用id而不是“这是按钮1”、“这是按钮2”吗。类似字符串[]descriptionArray={“R.id.kk”,“R.id.s_s”};为什么要使用id?R.id.kk是一个
TextView?
,因为真正的文本比这个长得多,有24个按钮,每个按钮都有自己的文本大小和文本颜色。