Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在编辑文本和文本视图之间传输数据_Android_Textview_Android Edittext_Runtimeexception - Fatal编程技术网

Android 在编辑文本和文本视图之间传输数据

Android 在编辑文本和文本视图之间传输数据,android,textview,android-edittext,runtimeexception,Android,Textview,Android Edittext,Runtimeexception,我正在尝试创建一个活动,该活动获取EditText的值,并将其放在另一个活动的TextView中 这是第一个活动的代码,该活动包含文本视图和用于编辑它的选项菜单 public class Saturday extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay

我正在尝试创建一个活动,该活动获取EditText的值,并将其放在另一个活动的TextView中

这是第一个活动的代码,该活动包含文本视图和用于编辑它的选项菜单

public class Saturday extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.saturday);

    Intent i = getIntent();
    String txt = i.getExtras().getString("txtData","");
    final TextView Tclass1;
    Tclass1 = (TextView)findViewById(R.id.seven);
    Tclass1.setText(txt);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.saturday, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
 switch(item.getItemId())
 {
 case R.menu.saturday:
     edit_schedule();
  return true;
 }
 return super.onOptionsItemSelected(item);

}
public void edit_schedule() {
    final TextView Tclass1;
    Tclass1 = (TextView)findViewById(R.id.seven); 
    Intent i = new Intent(this, EditSaturday.class);
 i.putExtra("text" , Tclass1.getText().toString());
 startActivity(i);

}}
这是包含带有保存按钮的EditText的其他活动的代码

public class EditSaturday extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.edit_saturday);

    Intent i = getIntent();
    String txt = i.getExtras().getString("txtData","");
    final EditText Eclass1;
    Eclass1 = (EditText)findViewById(R.id.eseven);
    Eclass1.setText(txt);

    findViewById(R.id.save).setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {

            save();
            }});

}

public void save() {
    final EditText Eclass1;
    Eclass1 = (EditText)findViewById(R.id.eseven);
    Intent i = new Intent(this, Saturday.class);
     i.putExtra("text" , Eclass1.getText().toString());
 startActivity(i);

}}
运行应用程序后,它会给我一个错误

这是logCat

04-14 08:15:17.911: E/AndroidRuntime(1202): FATAL EXCEPTION: main
04-14 08:15:17.911: E/AndroidRuntime(1202): java.lang.RuntimeException: Unable to start activity ComponentInfo{sarah.bodoor.sto/sarah.bodoor.sto.Saturday}: java.lang.NullPointerException
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.os.Looper.loop(Looper.java:137)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread.main(ActivityThread.java:5041)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at java.lang.reflect.Method.invokeNative(Native Method)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at java.lang.reflect.Method.invoke(Method.java:511)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at dalvik.system.NativeStart.main(Native Method)
04-14 08:15:17.911: E/AndroidRuntime(1202): Caused by: java.lang.NullPointerException
04-14 08:15:17.911: E/AndroidRuntime(1202):     at sarah.bodoor.sto.Saturday.onCreate(Saturday.java:22)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.Activity.performCreate(Activity.java:5104)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-14 08:15:17.911: E/AndroidRuntime(1202):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-14 08:15:17.911: E/AndroidRuntime(1202):     ... 11 more
应该是

Intent i = new Intent(EditSaturday.this, Saturday.class); 
// should be referring to activity context
在您的save()中

在第一个活动中,单击按钮获取EditText值,并使用意图在活动之间传递数据

EditText et= (EditText)findviewById(R.id.edittext);
String s= et.getText().toString();
Intent i= new Intent(firstActivity.this,secondActivity.class);
i.putExtra("key",s);
startActivity(i);
在您的第二个活动onCreate()中


尝试实现此代码

String txt = i.getExtras().getString("text","");
取代

String txt = i.getExtras().getString("txtData","");
因为您需要相同的键来从传递意图中获取值

在传递意图时输入“text”键,在获取意图时使用“txtData”键,这两个键是不同的,因此,在传递和获取时使用相同的键

使用以下代码通过选项菜单调用下一个活动后,单击

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    menu.add(0, 0, 0, "Next");
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
 switch(item.getItemId())
 {
 case 0:
     edit_schedule();
         return true;
 }
 return super.onOptionsItemSelected(item);

}

很好,我没注意到这个错误。我根据你的答案编辑了我的答案。虽然我举了一个有相同钥匙的例子,但我在帖子中没有注意到相同的钥匙。它很有效!那个错误消失了。但是现在,当我从选项菜单中单击该项时,其他活动不会启动!我还有一个问题。很抱歉。我的程序现在可能正在运行。但是周六的活动应该回到另一个主要活动。但是现在它没有点击选项菜单就返回到EditSaturday活动。我不明白你告诉我什么?所以,在你告诉我你面临的问题是什么之后,请谈谈你的教程流程?它是有效的!那个错误消失了。但是现在,当我从选项菜单中单击该项时,其他活动不会启动!try Intent i=新的Intent(星期六、本、编辑星期六、班级);您应该参考您的活动上下文。你得到了nullpointerexception?是的,我改变了。现在我没有得到nullpointerexception,但是当我从选项菜单中单击该项时,其他活动不会启动
String txt = i.getExtras().getString("text","");
String txt = i.getExtras().getString("txtData","");
@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    menu.add(0, 0, 0, "Next");
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
 switch(item.getItemId())
 {
 case 0:
     edit_schedule();
         return true;
 }
 return super.onOptionsItemSelected(item);

}