2011-04-25 80 views
1

那里。我是一名新的Android开发人员,我的经验还很不足。我试图通过每次单击按钮时更新自身的日志来更新GUI。我的问题是:为什么当“p#”TextViews会“更新”setText()时,“日志#”TextViews会更新?我的代码如下:TextView方法setText()在onClick方法中不工作()

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> 

回答

2

onClick删除setContentView(R.layout.b);和它的工作如预期,对我来说。

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

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

add setContentView(R.layout.b);像上面那样尝试。

1

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

0

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