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