TextView方法setText()在onClick()方法中不起作用

时间:2011-04-25 08:21:21

标签: java android xml

那里。我是一名新的Android开发人员,我的经验仍然很缺乏。我正在尝试通过每次单击按钮时更新自身来更新GUI。我的问题是:当“p#”TextViews出现时,为什么“log#”TextViews不会用setText()更新?我的代码如下:

public class ZARP extends Activity
{

    ..
    private void b(P p, E)
    {


        setContentView(R.layout.b);

        TextView p1 = (TextView)findViewById(R.id.textView1);
        TextView p2 = (TextView)findViewById(R.id.textView2);
        TextView p3 = (TextView)findViewById(R.id.textView3);
        TextView p4 = (TextView)findViewById(R.id.textView4);
        TextView p5 = (TextView)findViewById(R.id.textView5);
        TextView p6 = (TextView)findViewById(R.id.textView6);

        p1.setText("Hello");//WORKS
        p2.setText("Hello");//WORKS
        p3.setText("Hello");//WORKS
        p4.setText("Hello");//WORKS
        p5.setText("Hello");//WORKS
        p6.setText("Hello");//WORKS
    ..


        Button f = (Button)findViewById(R.id.button2);



        f.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
                {          

                    setContentView(R.layout.b);
                    TextView log1 = (TextView)findViewById(R.id.textView7);
                    TextView log2 = (TextView)findViewById(R.id.textView8);
                    TextView log3 = (TextView)findViewById(R.id.textView9);
                    TextView log4 = (TextView)findViewById(R.id.textView10);




                    log4.setText(log3.getText());//DOESN'T WORK
                        log3.setText(log2.getText());//DOESN'T WORK             
                    log2.setText(log1.getText());//DOESN'T WORK
                    log1.setText("Hello");//DOESN'T WORK

    }
...

}

b.XML的XML如下:

<TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tableRow1" android:baselineAligned="true">
        <LinearLayout android:layout_weight="1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout6">
            <ImageView android:layout_weight="1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageView1" android:src="@drawable/icon"></ImageView>
        </LinearLayout>
        <LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1">
            <ImageView android:layout_width="wrap_content" android:id="@+id/imageView2" android:layout_height="wrap_content" android:src="@drawable/icon" android:layout_gravity="right"></ImageView>
        </LinearLayout>
    </TableRow>
    <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <TextView android:id="@+id/textView1" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></TextView>
        <TextView android:id="@+id/textView4" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="top"></TextView>
    </LinearLayout>
    <LinearLayout android:id="@+id/linearLayout3" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></TextView>
        <TextView android:id="@+id/textView5" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="top"></TextView>
    </LinearLayout>
    <LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></TextView>
        <TextView android:id="@+id/textView6" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="top"></TextView>
    </LinearLayout>
    <Button android:layout_height="wrap_content" android:id="@+id/button2" android:layout_width="wrap_content" android:text="@string/f"></Button>
    <Button android:layout_height="wrap_content" android:id="@+id/button1" android:layout_width="wrap_content" android:text="@string/r"></Button>
    <LinearLayout android:layout_width="wrap_content" android:id="@+id/linearLayout5" android:layout_height="wrap_content" android:orientation="vertical">
        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView10" android:text="TextView"></TextView>
        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView9" android:text="TextView"></TextView>
        <TextView android:text="TextView" android:id="@+id/textView8" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        <TextView android:text="TextView" android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    </LinearLayout>
</TableLayout>

4 个答案:

答案 0 :(得分:2)

setContentView(R.layout.b);移除onClick,对我来说,它按预期工作。

答案 1 :(得分:1)

尝试在OnClick方法中删除调用setContentView(xxxxxx)。您已经设置了布局。通过再次调用它,按钮的所有侦听器(甚至可能是textViews的句柄,不确定)都将被删除。

答案 2 :(得分:0)

public class ZARP extends Activity
{
       setContentView(R.layout.b);
      ...

         private void b(P p, E)
             {..........

添加setContentView(R.layout.b);像上面那样试试。

答案 3 :(得分:0)

删除了setContentView(R.layout.b);你正在重复同样的事情!