Android 如何在editText返回到上一个活动中显示相同的值?

Android 如何在editText返回到上一个活动中显示相同的值?,android,Android,我使用两个文本框,如“表号”和“客人号”。如果我填写editText框并在listView中选择一些项目,然后转到下一个活动并再次返回上一个活动,其中editText框可用,则值为空。我的要求是,当我回到上一个活动时,EditText会显示我以前输入的数据 发送编辑文本数据: b1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {

我使用两个文本框,如“表号”和“客人号”。如果我填写editText框并在listView中选择一些项目,然后转到下一个活动并再次返回上一个活动,其中editText框可用,则值为空。我的要求是,当我回到上一个活动时,EditText会显示我以前输入的数据

发送编辑文本数据:

   b1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

                    //for (int i=0;i<GlobalClass.myval.length;i++){

                   //System .out.println("Clicked-->"+GlobalClass.myval[i]);

                    //}

            String tno = e1.getText().toString();
            int tn = Integer.parseInt(tno);

            Intent i=new Intent(getApplicationContext(),TicketActivity.class);
            Bundle b=new Bundle();
            b.putInt("Table No:", tn);
            i.putExtras(b);
            String et= e2.getText().toString();
            int et1 = Integer.parseInt(et);
            Bundle be=new Bundle();
            be.putInt("Guest:", et1);
            i.putExtras(be); 

            startActivity(i);



        }
    });
b1.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){

//对于调用活动中的(int i=0;i)

Intent i = new Intent(A.this, B.class);
i.putExtra("string", editText.getText());
startActivity(i);
在被调用的活动中,有一个字符串来获取此额外值,并将其再次传递给when onStop()

家庭活动:

public void onCreate(Bundle savedInstanceState){
....
  if(getIntent().getExtras()!=null) {
     Bundle extras = getIntent().getExtras();
     if(extras.getInt("TableNo") != null && extras.getInt("Guest") != null) }
        e1.setText(extras.getInt("TableNo").toString());
        e2.setText(extras.getInt("Guest").toString());
     }
  }
....
}


   b1.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

                //for (int i=0;i<GlobalClass.myval.length;i++){

               //System .out.println("Clicked-->"+GlobalClass.myval[i]);

                //}

        String tno = e1.getText().toString();
        int tn = Integer.parseInt(tno);
        String et= e2.getText().toString();
        int et1 = Integer.parseInt(et);

        Intent i=new Intent(getApplicationContext(),TicketActivity.class);
        i.putExtras("TableNo", tn);
        i.putExtras("Guest", et1); 

        startActivity(i);



    }
});
public void onCreate(Bundle savedInstanceState){
....
if(getIntent().getExtras()!=null){
Bundle extras=getIntent().getExtras();
if(extras.getInt(“TableNo”)!=null和&extras.getInt(“Guest”)!=null)}
e1.setText(extras.getInt(“TableNo”).toString();
e2.setText(extras.getInt(“Guest”).toString();
}
}
....
}
b1.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){

//对于(int i=0;i在转到下一个活动时保存EditText字段的值。然后在返回到上一个活动时检索该值。两个步骤:

  • 您需要覆盖onSaveInstanceState(Bundle savedInstanceState)并保存EditText字段的值:

    @覆盖
    SaveInstanceState上的公共无效(Bundle savedInstanceState)
    {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putString(“MyString”、“EditText值”);
    }

  • Bundle本质上是一种存储NVP(“名称-值对”)映射的方法,它将被传递到onCreate和onRestoreInstanceState,您可以在其中提取如下值:

    @覆盖
    RestoreInstanceState(Bundle savedInstanceState)上的公共无效
    {
    super.onRestoreInstanceState(savedInstanceState);
    String myString=savedInstanceState.getString(“myString”);
    }

  • 您通常使用这种技术来存储应用程序的实例值(选择、未保存的文本等)


    回答礼貌:

    声明一个类,声明一个静态变量,并将值存储在静态变量中 像这样

    public class globalconstant 
    { 
      public static String edtStr; 
    }
    
    存储值

    globalconstant.edtStr = edt.getText().toString();
    
    当你想用它的时候
    调用
    globalconstant.edtStr

    在启动UnderActivity时使用intent的“putExtra”方法:好的,我也使用了这个方法。但是我回到了上一个活动,然后数据被清除了,请查看:)类似地回答您的场景当您返回到上一个活动时,您必须使用getExtras尝试所做的更改。此外,如果您有问题,请从第二个活动上载代码当您返回到您的家庭活动并传递新的intent o2时,不要忘了添加extras以在家庭活动中检索它(检索将以与此处相同的方式进行)。此外,在检索之前,请不要忘记检查这些附加内容是否存在,因为您的家庭活动可以从launcher启动,也可以从该活动启动。如果您有更多问题,请随时问。请在我的代码中提及。我很困惑,很抱歉这是onCreate()…立即重试此行\\e1.setText(extras.getInt(“TableNo”).toString()中我没有找到资源异常)\\
       public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ticket);
    
    
    t1=(TextView)findViewById(R.id.textView3);
    t2=(TextView)findViewById(R.id.textView5);
    l1=(ListView)findViewById(R.id.listView1);
    or=(ImageButton)findViewById(R.id.imageButton7);
    ho=(ImageButton)findViewById(R.id.imageButton4);
    de=(ImageButton)findViewById(R.id.imageButton1);
    pl=(ImageButton)findViewById(R.id.imageButton2);
    mi=(ImageButton)findViewById(R.id.imageButton3);
    pa=(ImageButton)findViewById(R.id.imageButton5);
    pr=(ImageButton)findViewById(R.id.imageButton6);
    // l1.setItemsCanFocus(false);
    //l1.setFocusable(true);
    //l1.setClickable(true);
    
    //Get the Table no Value From Edit Text
    
    
    Intent i1=getIntent();
    Bundle b=i1.getExtras();
    int num=b.getInt("TableNo"); 
    pno=Integer.toString(num);
    t1.setText(pno);
    
    //Get The Guest Value From Edit Text
     Intent i2=getIntent();
     Bundle b1=i2.getExtras();
     int num1=b1.getInt("Guest");
     pno1=Integer.toString(num1);
     t2.setText(pno1);
    
    
    
    
    // List<String> st=GlobalClass.myval;
    
       //ArrayAdapter<String> ada = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1,st);
    
        l1.setAdapter(new EfficientAdapter(TicketActivity.this));
    
         l1.setOnItemClickListener(new OnItemClickListener(){
     public void onItemClick(AdapterView<?> parent,View view,int position,long id){
    
     st2=HomeActivity.select1[position];
    
        Toast.makeText(getApplicationContext(), "Selected:" + st2, Toast.LENGTH_SHORT).show();
    
        }
        });
    
     //GO TO PREV ACTIVITY:
    
    
        ho.setOnClickListener(new View.OnClickListener() {
    
        public void onClick(View v) {
    
            String tno = t1.getText().toString();
            int tn = Integer.parseInt(tno);
            String et= t2.getText().toString();
            int et1 = Integer.parseInt(et);
    
            Intent o2=new Intent(TicketActivity.this,HomeActivity.class);
            i.putExtras("TableNo", tn);
            i.putExtras("Guest", et1);
            startActivity(o2);
    
        }
      });
    
          }
    
        }
    
    public class globalconstant 
    { 
      public static String edtStr; 
    }
    
    globalconstant.edtStr = edt.getText().toString();