在android中,onActivityResult不是在两个tabhost中调用的

在android中,onActivityResult不是在两个tabhost中调用的,android,Android,我正在android中创建一个移动应用程序,我正在使用2 tabhost来满足我的需求。在第二个tabhost的第一个选项卡中,我从手机联系人号码中获取手机号码,因此我使用该代码 contact.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-

我正在android中创建一个移动应用程序,我正在使用2 tabhost来满足我的需求。在第二个tabhost的第一个选项卡中,我从手机联系人号码中获取手机号码,因此我使用该代码

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或类似的工具?请尝试用英语回答,这样会使更多的读者受益。