2011-11-16 22 views
1

我有两个java类,HelloAndroidActivity和GetTasks。我想尝试从单击按钮的第一个活动的“编辑文本”框中获取文本,并在下一个活动GetTasks中获取该值并将其显示在文本视图中。我的代码所示:将从EditText框中获得的值传递给下一屏幕中的TextView

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

哪行导致力闭合? –

+1

请从日志中发布堆栈跟踪。并使用注释或其他内容来突出显示哪些代码行导致异常被抛出。如果您认为该问题可能存在,则发布清单文件也可能会有所帮助。 – FoamyGuy

+0

什么视图类型是'task_name'?你为什么把它投到“CharSequence”? –

回答

2

我相信行

CharSequence task_name = (CharSequence) findViewById(R.id.task_name);

是最有可能的罪魁祸首。 CharSequence应替换为任何类型的视图task_name元素...

+0

这是堆栈跟踪。 – user1048684

+0

以下是堆栈跟踪: 11-15 20:19:00.298:E/AndroidRuntime(279):致命例外:主 11-15 20:19:00.298:E/AndroidRuntime(279):java.lang。 ClassCastException:android.widget.TextView 11-15 20:19:00.298:E/AndroidRuntime(279):\t at com.example.helloandroid.HelloAndroidActivity $ 3.onClick(HelloAndroidActivity.java:67) – user1048684

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

+0

它仍然在打破同一点。 – user1048684

相关问题