2017-03-10 11 views
1

私は一度のアクティビティとしてアプリケーションにユーザーデータを保存して、再度質問しないようにしたいと思います...Android共有の設定値を表示して編集するには保存して終了しました

public class Main_A extends Activity { 

public static final String Sh_Pref = "Sh_Pref_data"; 

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


    SharedPreferences settings = getSharedPreferences(Sh_Pref, 0); 
    HashMap<String, String> map = (HashMap<String, String>) settings.getAll(); 

    if (map != null && (map.containsKey("dtype") && map.containsKey("user_id") && map.containsKey("gname")&& map.get("dtype") != null && map.get("user_id") != null && map.get("gname") != null)) 
    { 
     Main_A.this.finish(); 

     Intent ss = new Intent(Main_A.this, Splash.class); 
     ss.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
     ss.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     ss.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     ss.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     startActivity(ss); 
    } 

    else { 

     Button b = (Button) findViewById(R.id.save); 
     b.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Spinner dtype = (Spinner) findViewById(R.id.s1); 
       EditText user_id = (EditText) findViewById(R.id.et1); 
       Spinner gname = (Spinner) findViewById(R.id.s2); 
       Spinner utype = (Spinner) findViewById(R.id.s3); 
       Spinner ttype = (Spinner) findViewById(R.id.s4); 

       if (dtype.getSelectedItem().toString().length() > 0 && user_id.getText().toString().length() > 0 && user_id.getText().toString().length() > 0 && utype.getSelectedItem().toString().length() > 0 && ttype.getSelectedItem().toString().length() > 0 && dtype.getSelectedItem().toString().length() > 0) { 

        String ct=dtype.getSelectedItem().toString(); 
        String dom = user_id.getText().toString(); 
        String am=gname.getSelectedItem().toString(); 
        String ut=utype.getSelectedItem().toString(); 
        String aname = getString(taname); 
        if(ut.equals("Talent")) 
        { 
         ut="T"; 
        } 
        else if(ut.equals("A+")) 
        { 
         ut="A"; 
        } 
        else if(ut.equals("Saint")) 
        { 
         ut="S"; 
        } 
        String tt=ttype.getSelectedItem().toString(); 

        Map<String, String> map = new HashMap<String, String>(); 

        SharedPreferences settings = getSharedPreferences(Sh_Pref, 0); 
        SharedPreferences.Editor editor = settings.edit(); 

        map.put("dtype",ct); 
        map.put("user_id", dom); 
        map.put("gname",am); 

        for (String key : map.keySet()) { 
         editor.putString(key, map.get(key)); 
        } 

        editor.commit(); 

        Main_A.this.finish(); 
        Intent i = new Intent(Main_A.this, Splash.class); 
        startActivity(i); 

       } 

      } 
     }); 

     Button c = (Button) findViewById(R.id.cancel); 
     c.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Main_A.this); 
       alertDialogBuilder.setTitle("ⓘ Exit ! " + getString(R.string.app_name)); 
       alertDialogBuilder 
         .setMessage(Html.fromHtml("<p style='text-align:center;'>Please Fill the required details</p><h3 style='text-align:center;'>Click Yes to Exit !</h4>")) 
         .setCancelable(false) 
         .setPositiveButton("Yes", 
           new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int id) { 
             moveTaskToBack(true); 
             android.os.Process.killProcess(android.os.Process.myPid()); 
             System.exit(0); 

            } 
           }) 

         .setNegativeButton("No", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 

           dialog.cancel(); 
          } 
         }); 

       AlertDialog alertDialog = alertDialogBuilder.create(); 
       alertDialog.show(); 
      } 
     }); 
    } 
} 


@Override 
public void onBackPressed() { 

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
    alertDialogBuilder.setTitle("ⓘ Exit ! " + getString(R.string.app_name)); 
    alertDialogBuilder 
      .setMessage(Html.fromHtml("<p style='text-align:center;'>Please Fill the required details</p><h3 style='text-align:center;'>Click Yes to Exit !</h4>")) 
      .setCancelable(false) 
      .setPositiveButton("Yes", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          moveTaskToBack(true); 
          android.os.Process.killProcess(android.os.Process.myPid()); 
          System.exit(0); 

         } 
        }) 

      .setNegativeButton("No", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 

        dialog.cancel(); 
       } 
      }); 

    AlertDialog alertDialog = alertDialogBuilder.create(); 
    alertDialog.show(); 

} 
} 

ここでは、すべてのデータを保存して...私は別の活動で同じファイルを編集したい..しかし、私が見ると、以前の値が何をしている必要がある。ここに成功のため

を実行して、そのa一度の活動...そのアプリの開始後...... ......そういうことが間違っている場合は、tha特定の値...

間違った詳細のために、このユーザーがキャッシュ/データを消去する必要があるか、またはアンインストールして再インストールする必要があります。これを回避するにはEdit for Shared prefsを追加します。 。

いずれかが、この種の私をお勧めできます

答えて

1

はあなたがここにあなたが簡単にでき

import android.os.Bundle; 
import android.app.Activity; 
import android.content.SharedPreferences; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    private SharedPreferences prefs; 
    private String prefName = "report"; 

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

     final EditText e_id=(EditText) findViewById(R.id.editText1); 
     final EditText e_name=(EditText) findViewById(R.id.editText2); 
     Button save=(Button) findViewById(R.id.button1); 
     Button select=(Button) findViewById(R.id.button2); 
     Button update=(Button) findViewById(R.id.button3); 

     save.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      prefs = getSharedPreferences(prefName, MODE_PRIVATE); 
       SharedPreferences.Editor editor = prefs.edit(); 

       //---save the values in the EditText view to preferences--- 
      editor.putInt("id", Integer.parseInt(e_id.getText().toString())); 
       editor.putString("name", e_name.getText().toString()); 

       //---saves the values--- 
        editor.commit(); 

       Toast.makeText(getBaseContext(), "Saved", 
       Toast.LENGTH_SHORT).show(); 
     } 
    }); 

     select.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      prefs = getSharedPreferences(prefName, MODE_PRIVATE); 

       Toast.makeText(getBaseContext(), String.valueOf(prefs.getInt 
       ("id", 22)), Toast.LENGTH_SHORT).show(); 
       Toast.makeText(getBaseContext(), prefs.getString 
       ("name", "Sample Name"), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

     update.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      prefs = getSharedPreferences(prefName, MODE_PRIVATE); 
       SharedPreferences.Editor editor = prefs.edit(); 

       //---save the values in the EditText view to preferences--- 
      editor.putInt("id", Integer.parseInt(e_id.getText().toString())); 
       editor.putString("name", e_name.getText().toString()); 

       //---saves and update the values both are same--- 
        editor.commit(); 

       Toast.makeText(getBaseContext(), "Updated Successfully", 
       Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    }  
} 

/更新/保存、共有設定を編集することができますここでは、これを試してみてくださいを既存の値を更新するか終了値をクリア... あなたはすでに保存済みですこれを2番目のアクティビティで使用してください...

+0

その実感ありがとう...しかし、私は以前の値を表示したい..それは間違って私は編集することができますので... –

0

共有のprefsを編集するには、この行を使用します。.. 編集したいキーを入れてください。

settings.edit().putString(key, map.get(key)).apply(); 
+0

ありがとう@Mukund Udaganiサー......あなたの答えを更新することができます...私のコードで...実際に私は入力コードを与えました私は新しいコードで編集または更新のための新しいものを欲しい...私はしたい表示して編集する...またはあなたに私に例を送ることができますリンク.​​.. –

+0

このリンクは、 http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to - ストアを取得して編集する値 –

0

共有優先して、特定のキーの値を編集するには次のコードを使用する:

SharedPreferences.Editor editor = getSharedPreferences("Sh_Pref_data", MODE_PRIVATE).edit(); 
           editor.putString("KEY",VALUE); 
           editor.commit(); 
+0

あなたはどこに例を挙げることができますか?新しいものを作成できるように... –

+0

次のように使用できます:SharedPreferences.Editor editor = getSharedPreferences( "Sh_Pref_data" MODE_PRIVATE).edit(); editor.putString( "user_id"、 "12"); editor.commit(); –

関連する問題