私はこの問題の簡単な解決策を探していましたが、見つからなかったので、ここに行きます:tabHostからIntent.ACTION_PICKを呼び出し、onActivityResultに戻る - どのように?
私は1つのwebviewを制御するタブホストを持つアプリケーションを持っています。タブ1が押された場合、私はwebviewなどでjavascript呼び出しを行い、それがこの単純なアプリケーションの内容を制御する方法です。
今、イメージ/ビデオギャラリーを立ち上げていくつかのメディアを選びたいと思っていますが、これは頭痛の原因になります。それは始まったが、私がいくつかのメディアを選んだときに、アプリはただちに閉じる(強制終了はなく、ただ消える)。
私はアプリケーションにonActivityResultメソッドを追加しましたが、呼び出されていないため、その理由がわかりません。これはあなたの問題で
mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Tab1", getResources().getDrawable(R.drawable.iphone)).setContent(R.id.webview));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Tab2", getResources().getDrawable(R.drawable.about)).setContent(R.id.webview));
mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Tab3", getResources().getDrawable(R.drawable.events)).setContent(R.id.webview));
mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("Tab4", getResources().getDrawable(R.drawable.free)).setContent(R.id.webview));
mTabHost.addTab(mTabHost.newTabSpec("tab_test5").setIndicator("Tab5", getResources().getDrawable(R.drawable.video)).setContent(R.id.webview));
mTabHost.getCurrentView().setVisibility(View.VISIBLE);
mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String arg0) {
if(mTabHost.getCurrentTab() == 0)
{
Log.i("***Selected Tab", "Im currently in tab with index::" + mTabHost.getCurrentTab());
side1(mWebView);
}
if(mTabHost.getCurrentTab() == 1)
{
Log.i("***Selected Tab", "Im currently in tab with index::" + mTabHost.getCurrentTab());
side2(mWebView);
}
if(mTabHost.getCurrentTab() == 2)
{
Log.i("***Selected Tab", "Im currently in tab with index::" + mTabHost.getCurrentTab());
side3(mWebView);
}
if(mTabHost.getCurrentTab() == 3)
{
Log.i("***Selected Tab", "Im currently in tab with index::" + mTabHost.getCurrentTab());
side4(mWebView);
}
if(mTabHost.getCurrentTab() == 4)
{
Log.i("***Selected Tab", "Im currently in tab with index::" + mTabHost.getCurrentTab());
side5(mWebView);
openStuff();
}
}
});
public void openStuff()
{
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
}
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case 1:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
}
}
}
あなたがスイッチにif文のあなたのチェーンを変換する必要があります。 – JoxTraex