Я искал простое решение для этой проблемы, но не смог найти его, так что вот так:
У меня есть приложение с вкладкой, которая управляет одним веб-просмотром. Если нажата вкладка 1, я выполняю вызов 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);
}
}
}