0

我有两个类 Profile.class 和 Details.class,

在配置文件类中,我使用了一个带有值的微调器(ATM、银行、个人、其他等)和一个按钮(确定)。单击“确定”按钮后,它将转到下一个活动,即详细信息活动,我将在其中获取一些详细信息,例如名称,描述等。

填写详细信息后,我给出了一个按钮(保存)。单击按钮保存时,我将在数据库中保存名称和描述,但我还想保存配置文件名称以及详细信息。我无法将选定的微调器文本从 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 代码

公共类详细信息扩展活动{

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

请解释一下这个“钥匙”是什么?

4

3 回答 3

1

首先获取一个微调器并向他们提供您想要的值,然后将选定的微调器值更改为字符串值,并且此字符串变量将在 OK 按钮中使用,通过使用IntentShared 首选项来传递值以将此值用于另一个活动,通过那里你可以在数据库中使用它来显示这个值。

于 2013-08-10T09:32:59.157 回答
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);

    } 
于 2013-09-24T12:17:10.287 回答
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 等传递给另一个活动。在此处查看完整列表

于 2013-08-10T09:39:00.300 回答