我一直在寻找一个解决这个问题的简单方法,但还是找不到一个,所以这里有:
我有一个带有tabhost的应用程序,用于控制单个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);
}
}
}
答案 0 :(得分:0)
在您的问题中,您必须使用onResume()方法而不是onActivityResult编写代码。对于管理规范逻辑,您必须在每个选项卡中维护标记并为所有选项写入onResume方法
例如:
@Override
protected void onResume() {<br>
// TODO Auto-generated method stub<br>
super.onResume();<br>
}
我想你知道活动lifecycle:
steps : onCreate() - onDestroy()<br>
onStart() / onRestart() - onStop()<br>
onResume() - onPause()