2012-02-28 6 views
0

編集済み>>全体アクティビティコードを書きます 私は自分のアクティビティにEditTextがあり、その下にボタンがあります。ユーザーがボタンをクリックすると、コンタクトピッカーの意図がランチされ、ユーザーは1つのコンタクトを選択できます。その活動の「onActivityResult」イベントでは、私は連絡先の選択されたIDを取得し、APIによって、私が定義されている、私は次のように、彼/彼女の名前を取得します:edittextはアンドロイドアプリケーションに自動的に埋め込まれます

package com.iBirthDayNotofication; 

import java.text.SimpleDateFormat; 
import java.util.Date; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

import com.iBirthdayNotification.Data.BirthdayContact; 
import com.iBirthdayNotification.Data.MyOwnContact; 

public class BirthdayEditor extends Activity { 

    EditText et_Name; 
    EditText et_Birthday; 
    Button et_Btn; 


    private Long mRowId; 

    BirthdayContact db; 

    String editor_tag; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.birthday_editor); 

     db=new BirthdayContact(this); 

     et_Name=(EditText)findViewById(R.id.editor_contactname_Input); 
     et_Birthday=(EditText)findViewById(R.id.editor_birthdday_input); 
     et_Btn=(Button)findViewById(R.id.editor_btn_add); 

     et_Name.setText("Ahmagh"); 


     mRowId = (savedInstanceState==null) ? null : 
      (Long)savedInstanceState.getSerializable("_id"); 

     //Get row id from calling activity 
     if (mRowId == null) { 

      Bundle extras = getIntent().getExtras(); 
      mRowId = extras != null ? extras.getLong("_id") 
        : null; 

     } 

     populateFields(); 

     et_Btn.setOnClickListener(new View.OnClickListener() 
     { 

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

       //Log.v("click message","hey"); 

       //Open Contact Intent to pick contact ID 
       Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
       startActivityForResult(intent,1001); 
      } 
     }); 

    } 

    void startContactActivity(Intent intent) 
    { 
     startActivityForResult(intent,101); 
    } 



    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     //super.onActivityResult(requestCode, resultCode, data); 

     if (resultCode == Activity.RESULT_OK) 
     { 
      String id = data.getData().getLastPathSegment(); 


      mRowId=Long.parseLong(id); 

      String tst=MyOwnContact.GetMyOwnContact(mRowId).GetName(); 

      et_Name.setText(tst); 


      BirthdayContact bc=db.GetBirthDay(mRowId); 


      editor_tag="insert"; 

      if(bc!=null) 
      { 

       SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd"); 


       et_Birthday.setText(bc.GetBirthDay().toString()); 
       editor_tag="edit"; 
      } 

     } 

    } 

    void populateFields() 
    { 
     if(mRowId!=null) 
     { 
      MyOwnContact mw=MyOwnContact.GetMyOwnContact(mRowId); 

      BirthdayContact bc=db.GetBirthDay(mRowId); 

      //populate widgtes 
      et_Name.setText(mw.GetName()); 
      et_Name.setText(bc.GetBirthDay().toString()); 


     } 
    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     saveState(); 
    } 

    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
     populateFields(); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 

     saveState(); 

     outState.putSerializable(("_id"), mRowId); 
    } 

    private void saveState() 
    { 
     SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd"); 

     Date birthDate=new Date(); 
     try 
     { 
      if(et_Birthday.getText()!=null) 
      { 
       birthDate = sp.parse(et_Birthday.getText().toString()); 
      } 
     } 
     catch(Exception exp) 
     { 
      // 
     } 


     if (editor_tag == "insert") { 
      long id = db.AddNewBirthdayContact(mRowId, birthDate); 
      if (id > 0) { 
       mRowId = id; 
      } 
     } 
     else if(editor_tag =="edit") 
     { 
      db.UpdateBirthDateContact(mRowId, birthDate); 
     } 
    } 


} 

私はet_Nameテキストを設定Wheter( "! !!!!!」)またはwheter私はTSTでそれを設定し、それだけでこのことを示しています

水曜日8月29日夜12時00分00秒アジア/テヘラン1990

私は

et_Name.setText("!!!!!!"); 
コメント場合でも、

はその日付を示しています。

注:私は連絡先の誕生日と彼のIDを保存するテーブルを持っており、ContactAPIとそのテーブルを扱う2つのクラスを定義しました。

お願いします。

編集:

XMLファイル

<EditText 
      android:id="@+id/editor_contactname_Input" 
      android:layout_weight="1" 
      android:hint="@string/editor_hint_contact" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 

      > 

編集>>

結果:

enter image description here

+0

はあなたのsubactivityからActivity.RESULT_OK結果コードを返しますか? – Egor

+0

私はIntent intent = new Intent(Intent.ACTION_PICK、ContactsContract.Contacts.CONTENT_URI)を使用します。連絡先のピッカーを呼び出すには、私はそれがokかどうかを知らない –

+0

結果コードをチェックする必要があります、setText()メソッドはおそらくあなたのコードで実行されません。 – Egor

答えて

0

せずにそれを試してみてください
super.onActivityResult(requestCode, resultCode, data); 

私はコンタクトインテントを使用していませんが、カメラの意図で多くの作業をしており、スーパーを呼び出す必要はありませんでした。

+0

それは動作しませんでした:( –

+0

私はあなたがそれを取得している理由については確信していません。あなたはそれを設定していないことを確信していますwhere.readこの記事を読む方法を連絡先http:// stackoverflowを示しています。com/questions/1721279/how-to-read-contacts-on-android-2-0 – Orlymee

+0

最も簡単な方法は、DeBugを使用して、この値が設定されている場所と方法を確認することです。ここでは、それを行う方法のリンクですhttp://androidacademy.com/1-tutorials/43-hands-on/76-debugging-android-with-eclipse?showall=1 – Orlymee

0

問題が見つかりました。onresumeイベントでは、動作モードを考慮してpopulateFields()メソッドを呼び出します。操作モードは、挿入または編集できます。また、私は間違いを犯しet_nameを2回設定しました。

ありがとうございます。

1

EditTextタグを閉じないでください。

試してみてください。

<EditText 
     android:id="@+id/editor_contactname_Input" 
     android:layout_weight="1" 
     android:hint="@string/editor_hint_contact" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 

     /> 
関連する問題