0

のサブクラスを作成しました。これには 4 つのタブTabActivityが含まれています。TabHost

アプリから連絡先を選択したいだけです。このために、以下のコードを使用しています

private final int PICK = 2;
Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
    parentActivity.startActivityForResult(intentContact, PICK);

Android Contact Picker の画面呼び出しが成功しました。任意の連絡先をタップすると、呼び出したアプリの最後の画面にリダイレクトされますが、onActivityResultメソッドは呼び出されません。

この点で、あなたの助けが必要です。何か言い忘れがあれば教えてください。

4

3 に答える 3

1

あなたが望むように、ここにいくつかのコードがあります。

public class MyActivity extends TabActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);

            // some other stuff

            TabHost.TabSpec firstTab = tabHost.newTabSpec("firstTab");

            firstTab.setContent(new Intent(this, FirstTabActivity.class)); // your class with content picker

            tabHost.addTab(firstTab);
    }
}

その他はこちら

public class FirstTabActivity extends Activity
{
    private static final int PICK_REQUEST_CODE = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);

            // some stuff

            Button pickContactButton = findViewById(R.id.btn_pick_contact);

            pickContactButton.setOnClickListener(new View.OnClickListener()
            {
                    @Override
                    public void onClick(View view)
                    {
                            Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                            startActivityForResult(intentContact, PICK_REQUEST_CODE);
                    }
            });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
            super.onActivityResult(requestCode, resultCode, data);

            if(PICK_REQUEST_CODE == requestCode && resultCode == RESULT_OK)
            {
                    // do some stuff
            }
    }
}
于 2013-01-02T10:14:09.670 に答える
0

TabActivityにはいくつかの奇妙な動作があります。これはそのうちの 1 つかもしれません。回避策を講じて機能させることもできますが、API レベル 13 以降では廃止されているため、削除を開始することを強くお勧めします。詳細については、こちらをご覧ください: ( https ://developer.android.com/reference/android/app/TabActivity.html )

于 2013-01-02T08:48:34.807 に答える
0

他の方法はこれです...

1.On button click(which you want to open intent) open another activity.
2.On another activity's onCreate() open that intent.
3.onActivityResult set static data which is on previous activity and call finish().
4.This way no one ever know that you opened such a activity and you ll get your data.
:)
于 2013-01-02T10:16:32.197 に答える