如何在TextView中设置文本?

时间:2012-05-30 11:50:13

标签: android textview android-activity

我有2个活动,这是第二个活动的布局(摘录):

<TextView
            android:id="@+id/user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
<TextView
            android:id="@+id/city"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

在第一个Activity中从JSON解析相应的值,并调用第二个Activity中的函数setValues:

String user = oj.getString("user");
String city = oj.getString("city");

act2.setValues(user, city);

在第二个Activity中,代码如下所示:

user = (TextView) findViewById(R.id.user);
city = (TextView) findViewById(R.id.city);

public void setValues(String user, String city) {
    Log.d("user", user); // THIS IS BEING RETURNED
    this.user.setText(user);
    this.city.setText(city);
}

正在调用此函数并返回“user”,但TextView中的文本未更改。

使用Runnable:

Intent intent = new Intent(this, Act2.class);
startActivity(intent);
run();

public void run() {
    Log.d("run", "it's running"); // IS RETURNED
    desc.setValues(user, city);
}


// SECOND ACTIVITY
public void setValues(String user, String city) {
    Log.d("user", user); // IS RETURNED

    this.user.setText(user);
    this.city.setText(city);
}

不幸的是结果仍然相同:TextViews仍为空。

2 个答案:

答案 0 :(得分:1)

这里我们不能在你的场景中使用意图吗?

android使用intent ....

Vogella Ariticle

活动1中的

-

Intent i = new Intent(this, ActivityTwo.class);
i.putExtra("Value1", "This value one for ActivityTwo ");
i.putExtra("Value2", "This value two ActivityTwo");

startActivity(i);

在活动2中 - 在onCreate finction

Bundle extras = getIntent().getExtras();

if (extras == null) {
        return;
        }
// Get data via the key
String value1 = extras.getString(Intent.EXTRA_TEXT);
if (value1 != null) {
    // Do something with the data
}

答案 1 :(得分:0)

确保 UIThread 上正在运行setValues()方法。请参阅:Painless ThreadingProcesses and Threads