项目需要使用一个Tabhost控件,要求其达到的效果是,在一个Tab页里面可以实现Activity的调转,网上有人介绍这个方法
ActivityGroup + GridView + ViewFlipper 实现选项卡
效果达到了,但是它引发了一个问题,就是 在activity中调用子activity时捕捉不到返回值,
调用子activity的方法没有错误,代码如下
//启动新窗体
@Override
public void onClick(View v)
{
//添加新列表按钮
if(v.getId()==R.id.btnAddMusicList)
{
//启动一个新的activity(Setting)
Intent intent = new Intent();
intent.setClass(MyMusicListActivity.this, AddNewMusicListActivity.class);
//给新的activity(Setting)
intent.putExtra("MusicListName", "");
startActivityForResult(intent,1);
}
}
//获取返回结果,但是这段代码根本就没有执行
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==RESULT_OK)
{
String strName=data.getExtras().getString("strListName");
if(!strName.equals(""))
{
myDb.insertData( strName);
ShowMusicList();
}
}
}
有人知道这是怎么回事吗,该如何解决呢 ??????????
------解决方案--------------------------------------------------------
onActivityResult你是怎么知道没执行的?
你加点log,给大家贴上来
------解决方案--------------------------------------------------------
我估计你点返回就会执行,但是你点的应该是调用的onClick,新开了一个Activity
------解决方案--------------------------------------------------------
ActivityGroup是将Activity加入到这个ActivityGroup中了。他们里面的Activity就相当于一个view,失去了很多Activity的特性了。你的那断代码根本就不回执行的哦。你如果需要在切换的时候传值,可以换个方法。比如:在点击GridView 的时候获取当前的position在点击事件中进行相关的操作。方法还有很多。