将从EditText框获得的值传递到下一个屏幕中的TextView

时间:2011-11-16 00:31:00

标签: android textview android-edittext

我有两个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);


}    

你能告诉我我做错了什么吗?我的申请力量自行结束。如果我传递一个字符串变量,而不是传递变量,我能够在文本视图中看到它?它与清单文件有关吗?我有意图进行这两项活动。对此有任何帮助表示赞赏。

2 个答案:

答案 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