的EditText和文本视图之间传送数据 [英] Transfer data between EditText and Text View

查看:196
本文介绍了的EditText和文本视图之间传送数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使该拿的EditText的价值的活动,并把它放在TextView中的其他活动。

这是code,对于它包含一个TextView和选项菜单中进行编辑的第一个活动。

 公共类周六延伸活动{@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.saturday);    意向I = getIntent();
    串的txt = i.getExtras()的getString(txtData,);
    最终的TextView Tclass1;
    Tclass1 =(的TextView)findViewById(R.id.seven);
    Tclass1.setText(TXT);}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    。getMenuInflater()膨胀(R.menu.saturday,菜单);
    返回true;
}
@覆盖
公共布尔onOptionsItemSelected(菜单项项)
{
 开关(item.getItemId())
 {
 案例R.menu.saturday:
     edit_schedule();
  返回true;
 }
 返回super.onOptionsItemSelected(项目);}
公共无效edit_schedule(){
    最终的TextView Tclass1;
    Tclass1 =(的TextView)findViewById(R.id.seven);
    意图I =新意图(这一点,EditSaturday.class);
 i.putExtra(文字,Tclass1.getText()的toString());
 startActivity(ⅰ);}}

这是对其他活动code,其中包含与保存按钮,一个EditText

 公共类EditSaturday延伸活动{@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.edit_saturday);    意向I = getIntent();
    串的txt = i.getExtras()的getString(txtData,);
    最终的EditText Eclass1;
    Eclass1 =(EditText上)findViewById(R.id.eseven);
    Eclass1.setText(TXT);    findViewById(R.id.save).setOnClickListener(新View.OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){            保存();
            }});}公共无效保存(){
    最终的EditText Eclass1;
    Eclass1 =(EditText上)findViewById(R.id.eseven);
    意图I =新意图(这一点,Saturday.class);
     i.putExtra(文字,Eclass1.getText()的toString());
 startActivity(ⅰ);}}

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

这是logcat的

 八月四日至14日:15:17.911:E / AndroidRuntime(1202):致命异常:主要
八月四日至14日:15:17.911:E / AndroidRuntime(1202):了java.lang.RuntimeException:无法启动活动ComponentInfo {sarah.bodoor.sto / sarah.bodoor.sto.Saturday}:显示java.lang.NullPointerException
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.os.Handler.dispatchMessage(Handler.java:99)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.os.Looper.loop(Looper.java:137)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread.main(ActivityThread.java:5041)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在java.lang.reflect.Method.invokeNative(本机方法)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在java.lang.reflect.Method.invoke(Method.java:511)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在dalvik.system.NativeStart.main(本机方法)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):因:显示java.lang.NullPointerException
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在sarah.bodoor.sto.Saturday.onCreate(Saturday.java:22)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.Activity.performCreate(Activity.java:5104)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
八月四日至14日:15:17.911:E / AndroidRuntime(1202):11 ...更多


解决方案

 意向书I =新意图(这一点,Saturday.class);

 意向书I =新意图(EditSaturday.this,Saturday.class);
//应该是指活动范围内

在您保存()

此外

  i.putExtra(文字,Eclass1.getText()的toString());在EditSaturday //关键
   //键应该是相同的
   字符串的txt = i.getExtras()的getString(txtData,);周六//关键
   //密钥不同

在您的第一项活动获得按钮点击editext价值和使用意图传递活动之间的数据

 的EditText等=(EditText上)findviewById(R.id.edittext);
字符串s = et.getText()的toString()。
意图I =新意图(firstActivity.this,secondActivity.class);
i.putExtra(钥匙,S);
startActivity(ⅰ);

在你的第二个actiivty的onCreate()

 的setContentView(R.layout.second);
捆绑额外= getIntent()getExtras()。
如果(临时演员!= NULL)
{
  TextView的电视=(TextView中)findviewById(R.id.textView1);
  字符串值= extras.getString(钥匙);
  tv.setText(值);
}

I'm trying to make an activity that take the value of the EditText and put it in the TextView in another activity.

This is the code for the first activity which contains a Textview and option menu to edit it

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);

}}

This is the code for the other activity which contains an EditText with the save button

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);

}}

After I run the application it give me an error

this is the 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(this, Saturday.class);

should be

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

in your save()

Also

   i.putExtra("text" , Eclass1.getText().toString());// key in EditSaturday 
   // keys should be the same 
   String txt = i.getExtras().getString("txtData","");// key in saturday
   // keys are different

In your first activity get the editext value on button click and use intents to pass data between activities

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);

In your second actiivty onCreate()

setContentView(R.layout.second); 
Bundle extras= getIntent().getExtras();
if(extras!=null)
{
  TextView tv= (TextView)findviewById(R.id.textView1);
  String value = extras.getString("key");
  tv.setText(value); 
}  

这篇关于的EditText和文本视图之间传送数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆