2 つのアクティビティがあります。これは 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" />
対応する値が最初のアクティビティで JSON から解析され、2 番目のアクティビティ内で関数 setValues が呼び出されます。
String user = oj.getString("user");
String city = oj.getString("city");
act2.setValues(user, city);
2 番目のアクティビティでは、コードは次のようになります。
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);
}
この関数が呼び出され、「ユーザー」が返されますが、TextView
s 内のテキストは変更されません。
実行可能な場合:
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 は空のままです。