在android中,onActivityResult不是在两个tabhost中调用的
我正在android中创建一个移动应用程序,我正在使用2 tabhost来满足我的需求。在第二个tabhost的第一个选项卡中,我从手机联系人号码中获取手机号码,因此我使用该代码在android中,onActivityResult不是在两个tabhost中调用的,android,Android,我正在android中创建一个移动应用程序,我正在使用2 tabhost来满足我的需求。在第二个tabhost的第一个选项卡中,我从手机联系人号码中获取手机号码,因此我使用该代码 contact.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-
contact.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
System.out.println("pickContactIntent value in cont" + pickContactIntent);
System.out.println("PICK_CONTACT value in cont" + PICK_CONTACT);
startActivityForResult(pickContactIntent, PICK_CONTACT);
} catch(Exception e){
Toast.makeText(getParent(), "Number is not format", Toast.LENGTH_SHORT).show();
}
}
});
此代码已成功执行,其内容已清除。现在我使用的是onActivityResult代码
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
// Make sure the request was successful
// We only need the NUMBER column, because there will be only one row in the result
String[] projection = {Phone.NUMBER};
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(contactData, projection, null, null, null);
cursor.moveToFirst();
// Retrieve the phone number from the NUMBER column
int column = cursor.getColumnIndex(Phone.NUMBER);
String number = cursor.getString(column);
String newNum = number.replaceAll("-", "").trim();
newNum=newNum.replace("+91", "");
mob_no.setText(newNum);
}
}
}
没有调用它,因为我正在调试中检查所有代码。为什么它没有被调用,我正在搜索解决方案从2天。我很担心。请解决我的问题。谢谢
整个代码是。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
公共课充电活动扩展活动{
static int counter=0;
ImageView contact;
Spinner spinner;
EditText mob_no;
String mobile_no;
TextView amt, user_name, user_crdt;
Button btn_submit;
ArrayList<String> adapter;
AlertDialogManeger adm;
String rech_operator="";
private static final int PICK_CONTACT = 1;
String UserBal;
List<String> provider_name = new ArrayList<String>();
List<String> provider_code = new ArrayList<String>();
//String[] provider_name, provider_code;
String urrl, cont_no, pvd_code, pvd_name, pvd_country, error="";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.globalrechargexml);
//requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
//setTitle(getResources().getDrawable(R.drawable.logo1));
//getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_logo);
spinner = (Spinner) findViewById(R.id.spnr_oprt);
spinner.setAdapter(null);
adm = new AlertDialogManeger();
amt = (EditText) findViewById(R.id.edt_amt);
mob_no = (EditText) findViewById(R.id.mobilenum);
contact = (ImageView) findViewById(R.id.mobile_contact);
//mob_no.requestFocus();
btn_submit = (Button) findViewById(R.id.btn_rchg);
user_name=(TextView) findViewById(R.id.u_name);
/*user_name.setText(Global_variable.getUserID());*/
user_crdt=(TextView) findViewById(R.id.t_crdt);
/*user_crdt.setText(Global_variable.getUserCredit());*/
mob_no.setSelectAllOnFocus(true);
mob_no.setRawInputType(InputType.TYPE_CLASS_NUMBER);
user_name.setTextColor(Color.parseColor("#ffffff"));
user_crdt.setTextColor(Color.parseColor("#ffffff"));
btn_submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Processdata();
}
});
mob_no.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
mob_no.setFocusableInTouchMode(true);
return false;
}
});
amt.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
amt.setFocusableInTouchMode(true);
//cont_no=mob_no.getText().toString();
//setfillspinner();
return false;
}
});
amt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
//Processdata();
return true;
}
return false;
}
});
mob_no.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
mob_no.setFocusableInTouchMode(true);
return false;
}
});
contact.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
System.out.println("pickContactIntent value in cont" + pickContactIntent);
System.out.println("PICK_CONTACT value in cont" + PICK_CONTACT);
startActivityForResult(pickContactIntent, PICK_CONTACT);
} catch(Exception e){
Toast.makeText(getParent(), "Number is not format", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
System.out.println("the value request code" + requestCode);
System.out.println("the value resultCode" + resultCode);
System.out.println("the value data" + data);
switch (requestCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
// Make sure the request was successful
// We only need the NUMBER column, because there will be only one row in the result
String[] projection = {Phone.NUMBER};
// Perform the query on the contact to get the NUMBER column
// We don't need a selection or sort order (there's only one result for the given URI)
// CAUTION: The query() method should be called from a separate thread to avoid blocking
// your app's UI thread. (For simplicity of the sample, this code doesn't do that.)
// Consider using CursorLoader to perform the query.
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(contactData, projection, null, null, null);
cursor.moveToFirst();
// Retrieve the phone number from the NUMBER column
int column = cursor.getColumnIndex(Phone.NUMBER);
String number = cursor.getString(column);
System.out.println("newNum value" + number);
String newNum = number.replaceAll("-", "").trim();
newNum=newNum.replace("+91", "");
/*System.out.println("newNum value" + newNum);
String tempNumber = newNum.substring(number.length()-10, number.length());
System.out.println("tempNumber value" + tempNumber);*/
mob_no.setText(newNum);
}
}
}
@Override
public void onBackPressed() {
new AlertDialog.Builder(getParent()).setTitle("Sign out").setMessage("Do you want to sign out?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
// TODO Auto-generated method stub
dialog.dismiss();
finish();
}
}).setNegativeButton("No", null).create().show();
}
}
您是否在onActivityResult方法中设置了断点?经过一段时间的测试,解决方案很简单 它通过以下方式工作 //包含MainActivity.java选项卡的主类 这是从TabActivity开始的
public class MainActivity extends TabActivity{
这将设置TabHost
TabHost tabHost = getTabHost();
localActivityManager = getLocalActivityManager();
tabHost.setup(localActivityManager);
//The tabs are added
tabHost.addTab(fotoIntent)
只有当触发onResume onActivityResult时才需要此选项,并在内部选项卡中起作用。@user3432982在super.onActivityResultrequestCode、resultCode、data;行中?onActivityResult和contact.setOnCLickListener是否在同一类中?是的,onActivityResult和contacti.setOnCLickListener在同一类中。contact.setOnCClickListener在onCreate方法中,onActivityResult方法在onCreate方法之外。但两者都是同一类。当我们在2 tabhost中使用此代码时,会产生问题,此代码写在第二tabhost的第一个选项卡中。第一个tabhost用在第一个tabhost的每个选项卡的上侧,第二个tabhost用在下侧。@user3432982l只有当我得到你的全部代码时,我才能帮助你。你是否使用GitHub或类似的工具?请尝试用英语回答,这样会使更多的读者受益。