2014-06-16 91 views
0

我目前正在教授自己的Android編程,因此請以初學者可以理解的方式解釋您的答案。Android - 全局變量和TextView對象

我正在嘗試使用來自其他屏幕/活動的公共靜態String對象來編輯TextView對象中的文本。 有兩個公共靜態字符串對象,分別稱爲crew_id和orderType(都被初始化爲空字符串)。活動中有一個名爲NewOrderActivity的TextView對象,其ID爲「crew_id_and_ordertype」。

我對NewOrderActivity.class代碼是目前這樣的:

的按鈕啓動NewOrderActivity的代碼是:

public void goToNewOrder(View view) 
{ 
    final EditText edit = (EditText) findViewById(R.id.editText1); //gets the string from the EditText object 
    crew_id = edit.getText().toString(); 
    Intent k = new Intent(CrewIDActivity.this, NewOrderActivity.class); 
    startActivity(k); 
} 

爲NewOrderActivity的代碼是:

public class NewOrderActivity 
extends Activity{ 
TextView info = (TextView)findViewById(R.id.crew_id_and_ordertype); 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new_order); 
    info.setText("Crew ID: " + CrewIDActivity.crew_id + "/n /n" + OrderingActivity.orderType); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.new_order, menu); 
    return true; 
} 

當我嘗試從之前的活動轉到NewOrderActivity,該應用停止工作。 我在做什麼錯?這是我試圖編輯TextView對象的問題,還是其他的東西?

回答

0

除非設置了視圖,否則無法初始化組件。代碼TextView的信息行應放置後setContentView

public class NewOrderActivity 
extends Activity{ 
TextView info = (TextView)findViewById(R.id.crew_id_and_ordertype); 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new_order); 
    info.setText("Crew ID: " + CrewIDActivity.crew_id + "/n /n" + OrderingActivity.orderType); 
} 

將其更改爲這樣:

public class NewOrderActivity 
extends Activity{ 


@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new_order); 
TextView info = (TextView)findViewById(R.id.crew_id_and_ordertype); 
    info.setText("Crew ID: " + CrewIDActivity.crew_id + "/n /n" + OrderingActivity.orderType); 
} 
+0

謝謝,非常完美:) – user3743206

+0

酷,很高興我能幫助你。請投我的答案,並鼓勵像我這樣的新手。 –