Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中更改单独活动中的文本视图_Android_Android Activity_Textview - Fatal编程技术网

在android中更改单独活动中的文本视图

在android中更改单独活动中的文本视图,android,android-activity,textview,Android,Android Activity,Textview,我有一个从数据库中提取信息的登录页面,然后我想使用这些信息来填充新页面/活动上的不同文本视图。我可以在我有提交按钮的活动上获得要更改的textview,但当我尝试在第二个活动上更改textview时,它只是崩溃了(应用程序意外停止) 以下是我更改textview的代码(其中txtID是我在单独活动中的textview) 用于单独活动的我的xml TextView test2 = (TextView) findViewById(R.id.txtID); test2.setText(test);

我有一个从数据库中提取信息的登录页面,然后我想使用这些信息来填充新页面/活动上的不同文本视图。我可以在我有提交按钮的活动上获得要更改的textview,但当我尝试在第二个活动上更改textview时,它只是崩溃了(应用程序意外停止)

以下是我更改textview的代码(其中txtID是我在单独活动中的textview)

用于单独活动的我的xml

TextView test2 = (TextView) findViewById(R.id.txtID);
test2.setText(test);
<TextView android:text="TextView" android:id="@+id/txtID"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>


哦,我的登录页面使用的是tableview,其余页面使用的是tabs。我对这个很陌生,所以如果这是一件简单的事情,我很抱歉,但如果您能提供任何帮助,我将不胜感激!!:-)

我可能会让每个单独的活动处理自己的显示,而不是让活动1直接更新活动2的显示,这看起来就像您正在做的那样

演示具有两个活动的应用程序,其中一个活动调用另一个活动,并传入数据。(查看Notepadv3中的onListItemClick。)您可以按照此模型将数据从活动1传递到活动2,然后活动2使用接收到的数据正确显示数据


如果您仍然有问题(比如您的应用程序崩溃),那么请发布复制您的问题所需的完整的最少代码。请注意记事本教程,并包括调试步骤,这可能有助于隔离确切的问题。

Andy。。。如果您试图在另一个活动中直接触摸UI小部件,您的应用程序将崩溃。在那里,意外地做了那件事。相反,考虑在活动之间传递一个不可变的状态对象。例如,可以使用startActivityForResult完成此操作。我有一些示例代码。

您不想直接接触其他活动的UI元素。您可以利用来来回传递信息。以下是一个例子:

假设我们有活动A,它有一些信息作为一个字符串,它想传递成为活动B中TextView的文本

//Setup our test data
String test = "Some text";
//Setup the bundle that will be passed
Bundle b = new Bundle();
b.putString("Some Key", test);
//Setup the Intent that will start the next Activity
Intent nextActivity = new Intent(this, ActivityB.class); 
//Assumes this references this instance of Activity A
nextActivity.putExtras(b);

this.startActivity(nextActivity);
现在在活动B的onCreate方法中,我们可以获取该字符串并将其作为文本分配给TextView,就像您所做的那样

public void onCreate(Bundled savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); //Setup some layout, set to your own

    String test = getIntent().getExtras().getString("Some Key");
    TextView test2 = (TextView) findViewById(R.id.txtID);
    test2.setText(test);     
}

这是一种享受。不过我对它做了一点修改,设置了一个bundle,并将其传递给我的选项卡式活动,然后在这里我将bundle拆分,然后将每个bundle传递给相应的活动,在那里我可以拉出单独的字符串等以供使用!再次感谢你的帮助!!谢谢你的帮助,我将在下周浏览教程,希望能更好地理解这些东西!谢谢Jal,下周我会看一看你的教程!!