2012-10-09 23 views
1

我得到這個錯誤ActivityThread.performLaunchActivity(ActivityThread $ ActivityRecord,意圖)線:2585當我啓動的意圖

public class SingleMenuItemActivity extends Activity { 

TextView lblName; 
TextView lblyest; 
TextView lbltoday; 
TextView lblHigh; 
TextView lblLow; 
TextView lblChange; 
TextView lblPcchange; 

String name,yesterday,today,high,low,change,pcchange; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.single_list_item); 



     lblName = (TextView) findViewById(R.id.name); 
     lblyest = (TextView) findViewById(R.id.yesterday); 
     lbltoday = (TextView) findViewById(R.id.today); 
     lblHigh = (TextView) findViewById(R.id.high); 
     lblLow = (TextView) findViewById(R.id.low); 
     lblChange = (TextView) findViewById(R.id.change); 
     lblPcchange = (TextView) findViewById(R.id.pcchange); 

     Intent in = getIntent(); 
     name = in.getStringExtra("name");; 
     yesterday = in.getStringExtra("yesterday"); 
     today =in.getStringExtra("today"); 
     high =in.getStringExtra("high"); 
     low = in.getStringExtra("low"); 
     change = in.getStringExtra("change"); 
     pcchange =in.getStringExtra("pcchange"); 


     //Error doesnt happen when the lines below are commented 
     lblName.setText((CharSequence)name.toString()); 
     lblyest.setText(yesterday.toString()); 
     lbltoday.setText(today.toString()); 
     lblHigh.setText(high.toString()); 
     lblLow.setText(low.toString()); 
     lblChange.setText(change.toString()); 
     lblPcchange.setText(pcchange.toString()); 

} 

}

我知道當我執行settext()函數時觸發錯誤,但我不知道如何修復它

+0

把一個完整的日誌貓錯誤 – Dharmendra

回答

0

試試這個代碼。

public class SingleMenuItemActivity extends Activity { 

    TextView lblName; 
    TextView lblyest; 
    TextView lbltoday; 
    TextView lblHigh; 
    TextView lblLow; 
    TextView lblChange; 
    TextView lblPcchange; 

    String name, yesterday, today, high, low, change, pcchange; 

    @Override 
    protected void onCreate (Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.single_list_item); 
     Intent in = getIntent(); 

     name = in.getStringExtra("name"); 
     ; 
     yesterday = in.getStringExtra("yesterday"); 
     today = in.getStringExtra("today"); 
     high = in.getStringExtra("high"); 
     low = in.getStringExtra("low"); 
     change = in.getStringExtra("change"); 
     pcchange = in.getStringExtra("pcchange"); 

     lblName = (TextView) findViewById(R.id.name); 
     lblyest = (TextView) findViewById(R.id.yesterday); 
     lbltoday = (TextView) findViewById(R.id.today); 
     lblHigh = (TextView) findViewById(R.id.high); 
     lblLow = (TextView) findViewById(R.id.low); 
     lblChange = (TextView) findViewById(R.id.change); 
     lblPcchange = (TextView) findViewById(R.id.pcchange); 

     lblName.setText((CharSequence) name.toString()); 
     /* lblyest.setText(yesterday.toString()); 
     lbltoday.setText(today.toString()); 
     lblHigh.setText(high.toString()); 
     lblLow.setText(low.toString()); 
     lblChange.setText(change.toString()); 
     lblPcchange.setText(pcchange.toString()); */ 

    } 


} 

實際上,您不能在setContentView()調用之前初始化視圖。這就是爲什麼,你正在得到這個問題。

+0

我試過這個......仍然得到相同的錯誤 – kmarima

0

移動這些行後setContentView(R.layout.single_list_item);

TextView lblName = (TextView) findViewById(R.id.name); 
TextView lblyest = (TextView) findViewById(R.id.yesterday); 
TextView lbltoday = (TextView) findViewById(R.id.today); 
TextView lblHigh = (TextView) findViewById(R.id.high); 
TextView lblLow = (TextView) findViewById(R.id.low); 
TextView lblChange = (TextView) findViewById(R.id.change); 
TextView lblPcchange = (TextView) findViewById(R.id.pcchange); 
1

你設置變量,lblName和所有這些,包含所有子視圖的的...但你在類級別這樣做。這些視圖不會在佈局膨脹之前創建,因爲行數爲 setContentView(R.layout.single_list_item);

,因此所有這些變量都設置爲空。

在setContentView()調用之後設置變量並查看它是如何變化的。

+0

我已經更新了這個問題..請看看 – kmarima

+0

調試代碼並驗證,我猜'name'是空值。 –