动态修改TextView 的问题

今天遇到一个问题,没办法动态修改TextView 的text 会有NullPointerException, 似乎只能在onCreate里面setConentView 之后才能修改,成员函数什么的都不行。最后无奈我只有把整个图都动态编写了。留着我以后慢慢研究

 1 package com.example.contextawaredemo;
 2 
 3 
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.CompoundButton;
 9 import android.widget.LinearLayout;
10 import android.widget.TextView;
11 import android.widget.Toast;
12 import android.widget.ToggleButton;
13 
14 
15 public class SwitchTV extends Activity{
16     static TextView tv;
17     static ToggleButton tb;
18     LinearLayout linlayout;
19     SimplePost post=new SimplePost();
20     String success="0";
21     
22     @Override
23     protected void onCreate(Bundle savedInstanceState){
24         super.onCreate(savedInstanceState);
25 //        setContentView(R.layout.switch_tv);
26 //        tv = (TextView) findViewById(R.id.TVswitch);
27         tv=new TextView(this);
28         tv.setText("the tv status");
29         
30         tb=new ToggleButton(this);
31         tb.setVisibility(View.GONE);
32         tb.setText("ON");
33         linlayout=new LinearLayout(this);
34         linlayout.setOrientation(LinearLayout.VERTICAL);
35         LinearLayout.LayoutParams Params=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
36         linlayout.addView(tv,Params);
37         linlayout.addView(tb,Params);
38         setContentView(linlayout);
39 //        tb=(ToggleButton) findViewById(R.id.TBswitch);
40         
41         NetworkReceiver networkReceiver=new NetworkReceiver();
42         System.out.println("new Network receiver created");
43         tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
44 
45         {
46 
47             @Override
48             public void onCheckedChanged(CompoundButton buttonView,
49                     boolean isChecked) {
50                 if(post.sendMessage("powerOn").equals(success)){
51                     Toast.makeText(getBaseContext(), "tv is on", Toast.LENGTH_LONG).show();
52                 }
53                 else{
54                     Toast.makeText(getBaseContext(), "try again", Toast.LENGTH_LONG).show();
55                 }
56                 
57                 
58             }});
59         
60     }
61     @Override
62     public void onDestroy() {
63         super.onDestroy();
64         
65     }
66     
67     public void statusOn(){
68         //tv = new TextView(this);
69         
70         //tv = (TextView) findViewById(R.id.TVswitch);
71         tv.setText("the tv is in status on");
72         
73     }
74     
75     public void statusOff(){
76         
77         
78         tv.setText("the tv is in status off, click the toggle to turn on it");
79         tb.setVisibility(View.VISIBLE);
80     }
81 
82 }

 

 

posted on 2013-03-19 18:15  lauraxia  阅读(263)  评论(0编辑  收藏  举报

导航