如何为textView设置值?

时间:2016-07-26 16:16:20

标签: java android textview

我正在开发一个非常简单的项目..我所要做的就是改变textView的值。

以下是方案:有一个按钮和一个textView。该textView的默认值为no。单击该按钮时应为yes。就是这样。

这是我的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="No"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

这是JAVA代码:

package ir.testApp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class TestAppActivity extends Activity {

    TextView text1;
    Button   btn1;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn1 = (Button) findViewById(R.id.button1);
        text1 = (TextView) findViewById(R.id.textView1);

        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                text1.setText("yes");

            }
        });
    }
}

目前它不起作用。我的意思是当我点击那个按钮时没有任何反应。那有什么不对?

注意:当我将该按钮放在该textView的顶部时,它就像一个魅力。那么为什么当按钮位于textView之后它不起作用?

3 个答案:

答案 0 :(得分:1)

编辑代码像这样

    btn1 = (Button) findViewById(R.id.button1);
    text1 = (TextView) findViewById(R.id.textView1);

    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            text1.setText("yes");
        }
    });

发生了什么我不知道!!代码是100000%确定。没错。

答案 1 :(得分:1)

更改XML中的按钮位置只会更改您的活动视图,但无法解决您的问题。

您正在实例化TextView并在每次点击按钮(!)时设置视图 而不是这样,你必须将TextView实例化为你的按钮,并在你的按钮clickListener中调用setText("yes")

public class TestAppActivity extends Activity {

    TextView text1;
    Button   btn1;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn1 = (Button) findViewById(R.id.button1);
        text1 = (TextView) findViewById(R.id.textView1);

        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                text1.setText("yes");
            }
        });
    }
}

答案 2 :(得分:1)

试试这个,

text1 = (TextView) findViewById(R.id.textView1);

btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            text1.setText("yes");
        }
    });
  

注意:最好的方法是,在listeners外部初始化所有UI组件。