我有两个java类,HelloAndroidActivity和GetTasks。我想尝试从单击按钮的第一个活动的“编辑文本”框中获取文本,并在下一个活动GetTasks中获取该值,并在文本视图中显示它。我的代码如下所示:
HelloAndroidActivity
Button save = (Button) findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() {
public void onClick (View v) {
Intent i = new Intent(HelloAndroidActivity.this, GetTasks.class);
//i.setClass(HelloAndroidActivity.this, GetTasks.class);
EditText taskname = (EditText) findViewById(R.id.task_name);
String task_name = taskname.getEditableText().toString();
Log.d("Task Name", task_name + "");
i.putExtra("taskname", task_name);
startActivity(i);
}
});
GetTasks
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page_layout);
CharSequence task_name = (CharSequence) findViewById(R.id.task_name);
Log.d("Here", task_name + "");
Intent i2 = getIntent();
taskname = i2.getStringExtra("taskname");
TextView text = (TextView) findViewById(R.id.gettaskname);
text.setText(taskname);
}
你能告诉我我做错了什么吗?我的申请力量自行结束。如果我传递一个字符串变量,而不是传递变量,我能够在文本视图中看到它?它与清单文件有关吗?我有意图进行这两项活动。对此有任何帮助表示赞赏。
答案 0 :(得分:2)
我相信这行
CharSequence task_name = (CharSequence) findViewById(R.id.task_name);
是最可能的罪魁祸首。 CharSequence
应替换为task_name元素的任何类型的视图......
答案 1 :(得分:0)
使用(CharSequence)
代替(EditText)
,这是您正在检索数据的布局对象的类型,如布局XML文件所定义。
在GetTasks.onCreate
方法中,您需要引入从HelloAndroidActivity
中的意图传递的值。
你这样做:
Bundle extras = getIntent().getExtras();
if (extras ==null) { return;}
String taskname = extras.getString("taskname");
请参阅以下链接了解good tutorial on using intents