【问题标题】:SharedPreferences with Intent putExtra带有 Intent putExtra 的 SharedPreferences
【发布时间】:2017-05-01 00:13:26
【问题描述】:

我刚开始学习 android studio 。当用户可以输入地点的名称以及他想在哪一天访问该地点时,我想制作一个简单的应用程序。

我想使用意图 putExtra 将地名和日期发送到 secondActivity(PLAN)。 之后在 secondActvity(PLAN) 中我想使用 SharedPreferences 以便保存地名和日期。如果用户选择其他地点和日期,可以将其添加到保存的数据中。

这是我的代码: DAANAMALL(FirstActvity.java)

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class DANAMALL extends AppCompatActivity {
    public static final String TAG_PLACE = "keyplace";
    public static final String TAG_DAY = "keyDay";

    Button b1;
    EditText etpName;
    EditText etd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dana_mall);

        etpName = (EditText) findViewById(R.id.PLACE);
        etd = (EditText) findViewById(R.id.DAY);
        b1 = (Button)findViewById(R.id.add);
        b1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(DANAMALL.this, PLAN.class);
                intent.putExtra(TAG_PLACE, etpName.getText().toString());
                intent.putExtra(TAG_DAY, etd.getText().toString());
                startActivity(intent);

            }
        });}}

    

计划(secondActvity.java):

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;


public class PLAN extends Activity {
    TextView txt;
    Button b1;
    SharedPreferences plan ;
    public static final String TAG_PLACE = "keyplace";
    public static final String TAG_DAY = "keyDay";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.plan);

        b1 = (Button)findViewById(R.id.show);
        b1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
        TextView txt = (TextView) findViewById(R.id.txtv);
        Intent intent = getIntent();
        String place = intent.getStringExtra(TAG_PLACE );
        String Day = intent.getStringExtra(TAG_DAY);

                plan=getSharedPreferences("savekey",MODE_PRIVATE);
                SharedPreferences.Editor edit=plan.edit();
                edit.putString("keyplace",place);
                edit.putString("keyday",Day);
                edit.commit();
                Toast.makeText(getBaseContext(),
                        "YOUR PLAN SAVED :) ", Toast.LENGTH_LONG).show();
            }
        });
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                plan = getSharedPreferences("savekey", MODE_PRIVATE);
                String place = plan.getString("keyplace", "");
                String Day = plan.getString("keyday", "");

                String msg = "VISIT:" + place + "DAY :" + Day;
                b1.setText(msg);

            }
    }); }}

我的问题:通过后secondActvity中没有数据 ..... SharedPreferences 不显示保存的数据。

我想知道如何解决这个问题:)

【问题讨论】:

    标签: android-intent sharedpreferences android-studio-2.2


    【解决方案1】:

    使用意图 putextra 流派

    String namestr=给路人发短信;

    Intent intent=new Intent(MainActivity.this,you_activity.class);
                intent.putExtra("code",namestr);
                startActivity(intent);
    

    并在其他活动中恢复它

    String namestr = getIntent().getStringExtra("code");    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      相关资源
      最近更新 更多