2012-01-16 7 views
-2

&検索されましたが、これを把握できていない可能性があります:
私は連絡先をピックアップするボタンを押します。連絡先を選択すると、アクティビティに戻り、それぞれのボックスに名前と#が表示されます。今、私はホームボタンを押して、再度開くために、再度アプリを選択し、値が残っている彼らの...良いですが、私は「戻る」ボタンを押したときに私のプログラムが閉じ、再び開いたときには、その値を失う戻るボタンが押されていない限り、連絡先のピッカーアクティビティがデータを保存します

public class speed_dial_setup extends Activity { 
/** Called when the activity is first created. */ 
private static final int CONTACT_PICKER_RESULT1 = 1001; 
private static final int CONTACT_PICKER_RESULT2 = 2002; 
private static final int CONTACT_PICKER_RESULT3 = 3003; 
private static final int CONTACT_PICKER_RESULT4 = 4004; 
private static final int CONTACT_PICKER_RESULT5 = 5005; 
private static final String DEBUG_TAG = null; 
EditText pNumber1; 
Button cPICKER1,cPICKER2,cPICKER3,cPICKER4, cPICKER5; 
// SharedPreferences sharedPref = getSharedPreferences("pNumber1",MODE_PRIVATE); 
// String webViewChoice = sharedPref.getString("pNumber1","null"); 

private static final String empty = ""; 
private static String selectedNumber = "", selectedName = ""; 
private static String phoneNumber = "", phoneName = ""; 
public static String name1 = "", name2 = "", name3 = "", name4 = "", name5 = ""; 
public static String phone1 = "", phone2 = "", phone3 = "", phone4 = "", phone5 = ""; 

private EditText phName1, phName2, phName3, phName4, phName5; 
private EditText phNumb1, phNumb2, phNumb3, phNumb4, phNumb5; 

SharedPreferences sharedPref; 
SharedPreferences.Editor prefEditor; 

private static int phoneIdx = 0, nameIdx = 0; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    cPICKER1 = (Button) findViewById(R.id.do_email_picker1); 
    cPICKER2 = (Button) findViewById(R.id.do_email_picker2); 
    cPICKER3 = (Button) findViewById(R.id.do_email_picker3); 
    cPICKER4 = (Button) findViewById(R.id.do_email_picker4); 
    cPICKER5 = (Button) findViewById(R.id.do_email_picker5); 

    phName1 = (EditText) findViewById(R.id.name_text1); 
    phName2 = (EditText) findViewById(R.id.name_text2); 
    phName3 = (EditText) findViewById(R.id.name_text3); 
    phName4 = (EditText) findViewById(R.id.name_text4); 
    phName5 = (EditText) findViewById(R.id.name_text5); 

    phNumb1 = (EditText) findViewById(R.id.phone_number1); 
    phNumb2 = (EditText) findViewById(R.id.phone_number2); 
    phNumb3 = (EditText) findViewById(R.id.phone_number3); 
    phNumb4 = (EditText) findViewById(R.id.phone_number4); 
    phNumb5 = (EditText) findViewById(R.id.phone_number5); 

     pNumber1 = (EditText) findViewById(R.id.phone_number1); 

    cPICKER1.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
         Contacts.CONTENT_URI); 
       startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT1); 

     } 
    }); 


    cPICKER2.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent contactPickerIntent2 = new Intent(Intent.ACTION_PICK, 
        Contacts.CONTENT_URI); 
      startActivityForResult(contactPickerIntent2, CONTACT_PICKER_RESULT2); 

    } 
}); 


cPICKER3.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent contactPickerIntent3 = new Intent(Intent.ACTION_PICK, 
        Contacts.CONTENT_URI); 
      startActivityForResult(contactPickerIntent3, CONTACT_PICKER_RESULT3); 

    } 
}); 

cPICKER4.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent contactPickerIntent4 = new Intent(Intent.ACTION_PICK, 
        Contacts.CONTENT_URI); 
      startActivityForResult(contactPickerIntent4, CONTACT_PICKER_RESULT4); 

    } 
}); 


cPICKER5.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent contactPickerIntent5 = new Intent(Intent.ACTION_PICK, 
        Contacts.CONTENT_URI); 
      startActivityForResult(contactPickerIntent5, CONTACT_PICKER_RESULT4); 

    } 
}); 

    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) 
    {   
     Cursor cursor = null; 
     phoneNumber = ""; 
     phoneName = ""; 

     List<String> allNumbers = new ArrayList<String>(); 


     try 
     { 
      Uri result = data.getData(); 
      String id = result.getLastPathSegment(); 

      cursor = getContentResolver().query(Phone.CONTENT_URI, null, 
       Phone.CONTACT_ID + "=?", new String[] { id }, null); 

      phoneIdx = cursor.getColumnIndex(Phone.DATA);      
      nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME); 

      if (cursor.moveToFirst()) { 
       while (cursor.isAfterLast() == false) { 
        phoneNumber = cursor.getString(phoneIdx); 
        phoneName = cursor.getString(nameIdx); 

        allNumbers.add(phoneNumber); 
        cursor.moveToNext(); 
       } 
      } 
      else 
      { 
       //no results actions 
      }     
     } 
     catch (Exception e) 
     { 
      //error actions 
     } 
     finally 
     { 
      if (cursor != null) 
      { 
       cursor.close(); 
      } 

     final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]); 
     AlertDialog.Builder builder = new AlertDialog.Builder(speed_dial_setup.this); 
     builder.setTitle("Choose a number"); 
     builder.setItems(items, new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int item) 
      { 
       selectedNumber = items[item].toString(); 
       selectedNumber = selectedNumber.replace("-", ""); 
      } 
     }); 

     AlertDialog alert = builder.create(); 

     if(allNumbers.size() > 1) 
     { 
      alert.show(); 
     } 
     else 
     { 
      selectedNumber = phoneNumber.toString(); 
      selectedNumber = selectedNumber.replace("-", ""); 

      selectedName = phoneName.toString(); 
     } 

     if (phoneNumber.length() == 0) 
     { 
      Toast.makeText(this, "No phone number found for contact.", 
        Toast.LENGTH_LONG).show(); 
     } 
     } 
    } 
    else 
    { 
     Log.w(DEBUG_TAG, "Warning: activity result not ok"); 
    } 

    /*********/ 
    switch (requestCode) 
    { 
    case CONTACT_PICKER_RESULT1: 
     phNumb1.setText(selectedNumber); 
     phName1.setText(selectedName); 

     name1 = selectedName; 
     phone1 = selectedNumber; 

     SharedPreferences sharedPref = getSharedPreferences("com.pick.contact",MODE_PRIVATE); 
     SharedPreferences.Editor prefEditor = sharedPref.edit(); 
     prefEditor.putString("pNumber1",selectedNumber); 
     prefEditor.commit(); 

     System.err.println("Chp1, phoneNumber = "+phoneNumber+" phoneName = "+phoneName); 
     break; 

    case CONTACT_PICKER_RESULT2: 
     phNumb2.setText(selectedNumber); 
     phName2.setText(selectedName); 

     name2 = selectedName; 
     phone2 = selectedNumber; 

     sharedPref = getSharedPreferences("com.pick.contact",MODE_PRIVATE); 
     prefEditor = sharedPref.edit(); 
     prefEditor.putString("pNumber1",selectedNumber); 
     prefEditor.commit(); 

     System.err.println("Chp2, phoneNumber = "+phoneNumber+" phoneName = "+phoneName); 
     break; 

    case CONTACT_PICKER_RESULT3: 
     phNumb3.setText(selectedNumber); 
     phName3.setText(selectedName); 

     name3 = selectedName; 
     phone3 = selectedNumber; 

     sharedPref = getSharedPreferences("com.pick.contact",MODE_PRIVATE); 
     prefEditor = sharedPref.edit(); 
     prefEditor.putString("pNumber1",selectedNumber); 
     prefEditor.commit(); 

     System.err.println("Chp3, phoneNumber = "+phoneNumber+" phoneName = "+phoneName); 
     break;  

    case CONTACT_PICKER_RESULT4: 
     phNumb4.setText(selectedNumber); 
     phName4.setText(selectedName); 

     name4 = selectedName; 
     phone4 = selectedNumber; 

     sharedPref = getSharedPreferences("com.pick.contact",MODE_PRIVATE); 
     prefEditor = sharedPref.edit(); 
     prefEditor.putString("pNumber1",selectedNumber); 
     prefEditor.commit(); 

     System.err.println("Chp4, phoneNumber = "+phoneNumber+" phoneName = "+phoneName); 
     break; 

    case CONTACT_PICKER_RESULT5: 
     phNumb5.setText(selectedNumber); 
     phName5.setText(selectedName); 

     name5 = selectedName; 
     phone5 = selectedNumber; 

     sharedPref = getSharedPreferences("com.pick.contact",MODE_PRIVATE); 
     prefEditor = sharedPref.edit(); 
     prefEditor.putString("pNumber1",selectedNumber); 
     prefEditor.commit(); 

     System.err.println("Chp5, phoneNumber = "+phoneNumber+" phoneName = "+phoneName); 
     break; 
    } 
} 


@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    super.onPause(); 
    SharedPreferences sharedPref = getSharedPreferences("speed_dial_setup",MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pNumber1","phone_number"); 
    prefEditor.commit(); 

} 


@Override 
protected void onStop() { 
    // TODO Auto-generated method stub 
    // super.onStop(); 
    super.onPause(); 
    SharedPreferences sharedPref = getSharedPreferences("speed_dial_setup",MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pNumber1","phone_number"); 
    prefEditor.commit(); 
} 


@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    SharedPreferences sharedPref = getSharedPreferences("speed_dial_setup",MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pNumber1","phone_number"); 
    prefEditor.commit(); 
} 


@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
    //super.onDestroy(); 
    super.onPause(); 
    SharedPreferences sharedPref = getSharedPreferences("speed_dial_setup",MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pNumber1","phone_number"); 
    prefEditor.commit(); 
} 
} 
+0

を使用した例でありますか –

答えて

0

戻るボタンを押すと、アクティビティが終了します。ですから、あなたが必要とするデータをsharedpreferenceに保存することをお勧めします。そして、アプリが共有好みから負荷情報リニューアルオープンされ

EDIT:?ここ

はlogcatでERORは何ですかSharedPreference

public class Calc extends Activity { 
public static final String PREFS_NAME = "MyPrefsFile"; 

@Override 
protected void onCreate(Bundle state){ 
    super.onCreate(state); 
    . . . 

    // Restore preferences 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    String My_String = settings.getString("item", "No item availible"); 
    int my_int = settings.getInt("integerItem", 0); 

} 

@Override 
protected void onStop(){ 
    super.onStop(); 

    // We need an Editor object to make preference changes. 
    // All objects are from android.context.Context 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putString("item", My_item); // the first parameter is the Key, and the second being the variable 
    editor.putInt("integerItem" item_number); 

    // Commit the edits! 
    editor.commit(); 
} 

}

+0

そのため、以前のデータを取得するためにonCreateで呼び出されませんか? SharedPrefsを読むためのコードは何ですか? – David

+0

私の編集をチェックしてください –

+0

は値が格納されているxml/myprefs.xmlのファイルのPREF_NAMEですか?ありがとう – David

0

あなたは何を質問していますか?これはちょっとした仕組みです。バックグラウンドでまだ開いている場合は、まだ開いています。しかし、あなたが背中を押すと、それは終了です。キンダーのようなfinish()が呼び出されます。

保存する必要がある状態を保存するには、onPause()onStop()またはonDestroy()機能を使用します。

+0

このコードはそれをしませんか? SharedPreferences sharedPref = getSharedPreferences( "speed_dial_setup"、MODE_PRIVATE); SharedPreferences.Editor prefEditor = sharedPref.edit(); prefEditor.putString( "pNumber1"、 "phone_number"); prefEditor.commit(); – David

関連する問題