電話番号を文字列 xx にロードする必要があります"...どうすれば実現できますか??メソッド間でデータを共有する方法は??メソッドを公開しようとしましたが、役に立ちません....アクティビティが次から始まることはわかっていますメインアクティビティ...では、別のメソッドからデータを取得してメインアクティビティを処理するにはどうすればよいですか?
public class MsgcontactActivity extends Activity {
private static final int CONTACT_PICKER_RESULT = 1001;
public void doLaunchContactPicker(View view)
{
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
EditText phoneTxt;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView) findViewById(R.id.textView1);
String xx=phoneTxt.getText().toString();
Toast.makeText(getApplicationContext(), xx,Toast.LENGTH_LONG ).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
{
String phone="";
Cursor contacts=null;
try
{
if (resultCode == RESULT_OK)
{
switch (requestCode)
{
case CONTACT_PICKER_RESULT:
Uri result = data.getData();
String id = result.getLastPathSegment();
contacts=getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
int phoneIdx = contacts.getColumnIndex(Phone.DATA);
if (contacts.moveToFirst())
{
phone = contacts.getString(phoneIdx);
EditText phoneTxt=(EditText)findViewById(R.id.phoneno);
phoneTxt.setText(phone);
}
else
{
Toast.makeText(this, "error", 100).show();
}
break;
}
}
else
{
Toast.makeText(this, "Warning: activity result not ok",50).show();
}
}
catch (Exception e)
{
Toast.makeText(this, e.getMessage(), 50).show();
}
finally
{
if (contacts != null)
{
contacts.close();
}
}
}
}
}
XML コード:-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:layout_height="wrap_content"
android:id="@+id/phoneno"
android:inputType="text|phone"
android:layout_width="wrap_content"
android:layout_toLeftOf="@+id/Contacts"
android:layout_alignParentLeft="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Contacts"
android:text="Contacts"
android:layout_alignParentRight="true"
android:onClick="doLaunchContactPicker"/>
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:id="@+id/textView1"
android:layout_height="wrap_content"
android:layout_below="@+id/phoneno"
android:layout_alignParentLeft="true"/>
</RelativeLayout>
次のトライ
public class MsgcontactActivity extends Activity {
private static final int CONTACT_PICKER_RESULT = 1001;
public void doLaunchContactPicker(View view)
{
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
EditText phoneTxt;
Button b;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b=(Button) findViewById(R.id.button1);
tv=(TextView) findViewById(R.id.textView1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doLaunchContactPicker(v);
}
});
String xx=phoneTxt.getText().toString();
tv.setText(xx);
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
{
String phone="";
Cursor contacts=null;
try
{
if (resultCode == RESULT_OK)
{
switch (requestCode)
{
case CONTACT_PICKER_RESULT:
Uri result = data.getData();
String id = result.getLastPathSegment();
contacts=getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
int phoneIdx = contacts.getColumnIndex(Phone.DATA);
if (contacts.moveToFirst())
{
phone = contacts.getString(phoneIdx);
EditText phoneTxt=(EditText)findViewById(R.id.editText1);
phoneTxt.setText(phone);
}
else
{
Toast.makeText(this, "error", 100).show();
}
break;
}
}
else
{
Toast.makeText(this, "Warning: activity result not ok",50).show();
}
}
catch (Exception e)
{
Toast.makeText(this, e.getMessage(), 50).show();
}
finally
{
if (contacts != null)
{
contacts.close();
}
}
}
}
}
HTMLコード
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true">
<requestFocus></requestFocus>
</EditText>
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:text="Button" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/editText1" android:layout_marginLeft="33dp"></Button>
<TextView android:text="TextView" android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"></TextView>
</RelativeLayout>