我有一个双窗格片段设计,细节片段处理最左边的listfragment点击的项目。
由于我有许多不同的列表项,因此每个列表项都有不同的GUI,我想将GUI部分的处理放在不同的单独的类中。 我使用反射来获取ItemDetailFragment中的代码:(下面的代码被删除)
*//get class gui_handler for the object and get its constructor:*
Constructor<?> ctor = mListItem.getmGuiHandler().getConstructor(View.class);
*//create an object of the gui_handler class, pass the rootView as arg:*
gui_handler_base handlerObject = (gui_handler_base) ctor.newInstance(root);
*//run setup-method containing findViewById() and more GUI related stuff:*
handlerObject.setupGUI(mListItem, getActivity());
在setupGUI中:
public void setupGUI(MyListItem item, final Activity activity) {
buttonRun.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
final String FILENAME = "XXX";
Intent I = new Intent(activity,KTActivity.class);
Bundle b = new Bundle();
b.putSerializable("FileName",FILENAME);
I.putExtras(b);
activity.startActivityForResult(I,1);
return;
}
});
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
// I WANT TO END UP HERE WHEN THE ACTIVITY RETURNS;
}
我在gui_handler_base类中有一个onActivityResult方法,在ItemDetailFragment中有一个onActivityResult方法,但没有一个被调用。 我怎么能这样做?
答案 0 :(得分:0)
你的问题很模糊。你为什么使用onActivityResult? activity.startActivityForResult(I,1);为什么?为什么不只是在片段类中实现onclicklistener类并完成它?似乎在尝试减少代码时,您为自己创造了更多麻烦。还要在代码中取出数字并使用常量。您必须调用intent并在同一片段中使用intent。还有更多为什么要从片段中提取GUI功能?你不应该。即使您正在创建自定义功能,您仍然可以在片段中处理片段的功能。
//if you want to try this… normally when receiving a camera intent this is what you can do.
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case yourResultCode:
doSomethingWithYourResult;
break;
]