如何将数据从一个活动发送到另一个活动

时间:2013-11-25 08:02:21

标签: android

大家好我刚接触Android开发我的问题是如何在任何活动中调用输入编辑文本数据,我需要像hmtl5中的本地存储一样如何设置值并将它们提供给我在任何活动中所需的位置但不在我在下面的例子中提到的意图活动我希望在其他一些活动中显示我需要获取值

这是我的代码

public class Autoinput extends Activity {

EditText Engines, Drivers;

Button next;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.autoinputvalues);

    Engines = (EditText) findViewById(R.id.noofengines);
    Drivers = (EditText) findViewById(R.id.noofdrivers);


    next = (Button) findViewById(R.id.autoinputnext);

    next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent autoinputscreen = new Intent (getApplicationContext(),       autocoverage.class);
            startActivity(autoinputscreen);
        }
    });

}

}

如果我们写了额外的意图,它将转到我们提到意图的特定活动,只有我们可以得到它我的意图是调用任何活动并显示它们。

4 个答案:

答案 0 :(得分:0)

如果您想保存您的数据并且在任何活动中都需要,请使用数据库或共享首选项

要获取共享首选项,请在您的活动中使用以下方法:

  SharedPreferences prefs = this.getSharedPreferences(
  "com.example.app", Context.MODE_PRIVATE);

阅读偏好:

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
 Vboolean IsTurnOn = preferences.getBoolean("Key", Default_Value);

编辑和设置首选项

 Editor editor = preferences.edit();
 editor.putBoolean("Key", Value);
 editor.commit();

答案 1 :(得分:0)

如果您希望在应用程序关闭或崩溃后销毁数据,您可以使用类似全局变量的内容:例如,请参阅this

另一方面,如果您希望在应用程序崩溃后保留数据,则可以使用共享首选项:

 SharedPreferences pref;
 pref=context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
 editor=pref.edit();

设置数据:

editor.putString("Engines", Engines.getText().toString());
editor.putString("Drivers", Drivers.getText().toString());

然后从任何地方检索:

 String engines=pref.getString(("Engines",null);
 String drivers=pref.getString(("Drivers",null);

答案 2 :(得分:0)

您应该使用共享偏好。你应该参考this link

答案 3 :(得分:0)

你可以用两种方式做到这一点,一种是使用Bundle,另一种是使用Intent。

使用捆绑

发送:

Intent passIntent = new Intent(CurrentActivity.this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("Key", "Value");
passIntent.putExtras(bundle);
startActivity(passIntent);

收到:

Bundle bundle = getIntent().getExtras();
String recText = bundle.getString("Key");

使用通过意图

发送:

Intent passIntent = new Intent(CurrentActivity.this, SecondActivity.class);
passIntent.putExtras("Key", "Value");
startActivity(passIntent);

收到:

String recText = getIntent().getExtras().getString("Key"); 

对于您的代码,在您的FirstActivity中

listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Log.d(TAG, "clicked on item: " + position);
                    Intent passIntent = new Intent(CurrentActivity.this, SecondActivity.class);
                    passIntent.putExtras("Key", position);
                    startActivity(passIntent);
                }
            });

在SecondActivity中,

details.setText(getIntent().getExtras().getString("Key"));