2016-08-25 6 views
0
こんにちは、私は、次のアンドロイド

どのように私は

からセッションを呼ぶのですか知りたい

値をsharedpreferenceするのTextViewを設定して行うには、セッション

Runnable runnable = new Runnable() { 
     public void run() { 
      Users user = mapper.load(Users.class,username); 

      // System.out.println(user.getPassword()); 
      // System.out.println(username); 
      try { 
       if (user != null && user.getPassword().equals(password)) { 
        //System.out.println("Correct"); 
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
        SharedPreferences.Editor editor = pref.edit(); 
        editor.putString("userSession", username); 
        editor.commit(); 

        runOnUiThread(new Runnable() { 

         @Override 
         public void run() { 
          //setContentView(R.layout.activity_account); 
          startActivity(new Intent(startActivity.this, accountActivity.class)); 
         } 
        }); 

と後に設定されている私のログインページのコードですそれにログインすると、今、私は私がするのTextViewを設定しない方法を知りたいアカウントページに行き、accoundページのコードは

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_account); 
     /* SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
    SharedPreferences.Editor editor = pref.edit(); 

    String User=pref.getString("userSession", "Not Exist"); 
    System.out.println("Hello"); 
    System.out.println(User); 
*/ 
    test = (Button) findViewById(R.id.streamingButton); 
    testId = (TextView)findViewById(R.id.welcomeTxt); 
} 

下に表示され、私はSをコメントしているユーザ名のユーザでログインそれはユーザーIDも印刷しないので、haredpreferenceコードです。コメントされたコードが機能しない理由を理解できません。

+0

ユーザとは何ですか= mapper.load(Users.class、username);やっている?最初のクラスに適切な値が出力されますか? – LBJ33

答えて

0

setText()メソッドを使用すると、簡単にテキストビューの値を変更できます。または、既存の値を上書きすることなく、append()で最後にテキストを追加することもできます。

testId.setText("my value"); 

私はSharedPreferencesが機能しない理由についてあまりよく分かりません。 Runnableオブジェクトからアプリケーションコンテキストを取得するコードはありますか?おそらくコンテキストをRunnableに渡す必要がありますか?

1

SharedPreferencesを使用する必要はなく、データをインテントに入れるだけです。次に、accountActivityのonCreateデータフォームを取得できます。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_account); 

    Intent intent = getIntent(); 
    String userName = intent.getStringExtra("userName"); 

    test = (Button) findViewById(R.id.streamingButton); 
    testId = (TextView)findViewById(R.id.welcomeTxt); 

}

0

共有優先してデータを保存する場所をコミットの代わりに適用されます使用してください: これを参照してください。 SharedPreferences行だけを削除してください。エディタ= pref.edit();コードのコメントを外します。これにより、共有設定で正しい値ストアが得られます。

+0

ありがとうalotそれは動作します –

+0

それはあなたが答えとしてそれを受け入れることができます。ありがとう – Ramit

0

account pageをこれに編集してください。

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_account); 

    SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
    if(pref.contains("userSession") { 

     String user = pref.getString("userSession", "UNDEFINED"); 
     textview.setText(user); 

    } 
}