我长期坚持这个问题。我觉得它很简单,但我是一个新手Android开发人员,所以非常感谢你的帮助。
我有两项活动。我的主要活动布局有一个textview和一个按钮。我想要做的是实现按钮来从另一个活动类(Btn类)更改textview的文本。这是我的Btn课程
public class Btn extends Activity implements OnClickListener {
Button btn;
TextView textBox;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
textBox = (TextView)findViewById(R.id.address);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
textBox.setText("Test Test");
}
}
现在这个编译并且工作正常但是当我按下按钮时没有任何反应。 我想知道当我按下按钮时如何更改textview的文本。我知道如何在我的主要活动课中这样做,但我想从另一个班级做到这一点。
答案 0 :(得分:1)
请尝试实施以下代码,
MainActivity.java
public class MainActivity extends Activity implements OnClickListener {
Button btn;
TextView textBox;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
textBox = (TextView)findViewById(R.id.address);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn:
String strTemp = "Test Test";
textBox.setText(strTemp);
Intent intent = new Intent(MainActivity.this, Second.class);
intent.putExtra("tempstring", strTemp);
startActivity(intent);
break;
default:
break;
}
}
}
Second.java
public class Second extends Activity {
private TextView txtTemp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
txtTemp = (TextView) findViewById(R.id.txt_temp);
Intent intent = getIntent();
String strTemp = intent.getStringExtra("tempstring");
txtTemp.setText(strTemp);
}
}
希望它适合你。
答案 1 :(得分:1)
即使你真的是一个完整的新手,在Activity之后要学习的第二件事是Intent。 没有一个Activity可以检索对象'来自另一个的数据和属性直接发送更改,它对运行时来说是不安全的,因为您无法100%确定后台活动不会被系统杀死。 因此,Intents被发明用于调用Activities并将数据传递给它们。 Android Coders提供的代码以这种方式工作。首先,您创建一个Intent对象,将额外的数据(例如您要设置的文本设置为另一个Activity的TextView),最后启动一个负责此类Intent的Activity。在此代码中,Intent是显式的,这意味着应该调用某个包的某个Activity。在这个Activity中,有一个代码可以检查是否有被调用的Intent,从中读取额外的数据(你的文本),最后调用setText()。 根据数据和操作的类型,还有隐式Intent。它取决于系统,让您在设备上存在的所有包中的所有活动之间进行选择,这些活动可以处理您提供给Intent的数据类型。 没有什么是个人的,但如果你不能理解Intents,你就不会理解Android。非常努力。