編集済み>>全体アクティビティコードを書きます 私は自分のアクティビティに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"
>
編集>>
結果:
はあなたのsubactivityからActivity.RESULT_OK結果コードを返しますか? – Egor
私はIntent intent = new Intent(Intent.ACTION_PICK、ContactsContract.Contacts.CONTENT_URI)を使用します。連絡先のピッカーを呼び出すには、私はそれがokかどうかを知らない –
結果コードをチェックする必要があります、setText()メソッドはおそらくあなたのコードで実行されません。 – Egor