我有两个类Profile.class和Details.class,
在个人资料类中,我使用了一个微调器,其价值如(ATM,银行,个人,其他等) 和一个按钮(OK)。 单击确定按钮,它将转到下一个活动,即详细活动,我将采取一些细节,如名称,描述等。
填写细节后我给了一个按钮(保存)。 点击按钮保存我将保存数据库中的名称和描述,但我想保存配置文件名称以及详细信息。我无法将所选的微调器文本从Profile.class传输到Details.class
如何转移?
create.class代码
公共类创建扩展活动{
public ArrayList<String> array_spinner;
Button button4;
String spinnertext;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create);
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
array_spinner=new ArrayList<String>();
array_spinner.add("ATM");
array_spinner.add("Bank");
array_spinner.add("Mail");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, array_spinner);
adapter.setNotifyOnChange(true);
spinner.setAdapter(adapter);
spinner.setLongClickable(true);
spinner.setOnLongClickListener(new OnLongClickListener(){
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return false;
}}
);
button4 = (Button)findViewById(R.id.button4);
button4.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent4 = new Intent(view.getContext(), Details.class);
startActivityForResult(myIntent4, 0);
myIntent4 .putExtra("key", array_spinner.getSelectedItem().toString());
startActivity(myIntent4);
}
});
}}
details.class code
public class Details扩展Activity {
EditText editText4,editText5,editText6;
Button button8,button9,button10;
TextView textView7;
String et4,et5,et6;
//SQLite Database db;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details);
String spinnervalue = getIntent().getExtras().getString("Key");
请告诉我这是什么“关键”?
答案 0 :(得分:1)
首先取一个微调器并为它们提供你想要的值,然后选中的微调器值将它改为字符串值,这个字符串变量将在OK按钮中用来通过使用 Intent传递值或共享首选项将此值带到另一个活动,然后您可以在数据库中使用它来显示此值。
答案 1 :(得分:1)
如果您想将数据发送到其他活动,可以使用intent
。
Bundle bund = new Bundle();
bund.putString("myKey",name);
Intent intent = new Intent(Profile.this, Detail.class);
intent.putExtras(bund);
startActivity(intent);
现在在Detail类中,在onCreate()
中接收此数据 @Override
protected void onCreate(Bundle savedInstanceState) {
.......
String nameReceived = getIntent().getExtras().getString("myKey");
}
我已经给出了将String传递给另一个活动的示例,但是,您可以将boolean,int,double等传递给另一个活动。请参阅here
上的完整列表答案 2 :(得分:1)
您可以使用:
Intent i = new Intent(MainActivity.this,SecondActivity.class);
i.putExtra("YourValueKey", yourData.getText().toString());
然后你可以通过以下方式从第二项活动中获得它:
Intent intent = getIntent();
String YourtransferredData = intent.getExtras().getString("YourValueKey");
例如
这是您在第一项活动中必须写的内容
Intent i = new Intent(getApplicationContext(), Product.class);
i.putExtra("productname", ori);
i.putExtra("productcost", position);
i.startActivityForResult(i,0);
然后在您的下一个活动中,您需要拥有此代码
String productname,productcost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product);
tv1= (TextView)findViewById(R.id.tv1);
tv2= (TextView)findViewById(R.id.tv2);
Bundle extras= getIntent().getExtras();
if(extras!=null)
{
position = extras.getString("position"); // get the value based on the key
tv1.setText(productname);//use where ever you want
productname = extras.getString("productname"); // get the value based on the key
tv2.setText(productname);
}