Android - 全局变量和TextView对象

时间:2014-06-16 00:05:07

标签: java android android-edittext textview global-variables

我目前正在自学Android编程,所以请以初学者可以理解的方式解释您的答案。

我正在尝试使用来自其他屏幕/活动的公共静态String对象来编辑TextView对象中的文本。 有两个公共静态字符串对象,分别称为crew_id和orderType(两者都初始化为空字符串)。名为NewOrderActivity的Activity中有一个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对象的问题,还是其他问题?

1 个答案:

答案 0 :(得分: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);
}