Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当GUI部件位于片段外部时,OnActivityResult_Android_User Interface_Android Fragments_Onactivityresult - Fatal编程技术网

Android 当GUI部件位于片段外部时,OnActivityResult

Android 当GUI部件位于片段外部时,OnActivityResult,android,user-interface,android-fragments,onactivityresult,Android,User Interface,Android Fragments,Onactivityresult,我有一个两窗格的片段设计,其中的细节片段处理在最左边的listfragment上单击的项目 因为我有很多不同的列表项,它们有不同的GUI,每一个,我想把GUI部分的处理放在不同的单独类中。 我正在使用反射来精简ItemDetailFragment中的代码:(下面的代码已精简) 我在gui_handler_基类中有一个onActivityResult方法,在ItemDetailFragment中有一个,但它们都没有被调用。 我该怎么做???你的问题很含糊。为什么要使用onActivityResul

我有一个两窗格的片段设计,其中的细节片段处理在最左边的listfragment上单击的项目

因为我有很多不同的列表项,它们有不同的GUI,每一个,我想把GUI部分的处理放在不同的单独类中。 我正在使用反射来精简ItemDetailFragment中的代码:(下面的代码已精简)

我在gui_handler_基类中有一个onActivityResult方法,在ItemDetailFragment中有一个,但它们都没有被调用。
我该怎么做???

你的问题很含糊。为什么要使用onActivityResult?活动。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;
      ]

我知道你在问什么,而且据我所知,你的设计不符合标准的Android设计模式。我认为很明显,我想在以后处理结果时,我最终会进入onActivityResult。我在发布之前清除了方法,因为我的问题的核心不是方法本身。我将GUI部分分为不同的类来保持fragment类的简短,我有大量的代码做不同的事情,所以我认为这样设计我的应用程序是很好的。问题不是处理结果本身(resultCode…),而是没有调用OnActivityResult,因为它在fragment类之外。同样,为什么要将GUI代码放在fragment之外。这不是好的代码设计。您可能有不同的实用程序类来处理信息,但对于GUi来说,大多数都应该发生在控制器类中。碎片应该在做自己的工作。这就是活动和碎片的全部要点;他们天生就是控制者。想想MVC。就结果而言。很明显你想做什么,但不清楚的是为什么?换句话说,你对结果做了什么?这还不清楚。理由是什么?我想将不同的GUI行为封装到不同的独立类中。我将不得不处理大量的控制代码,我不想以一个片段类的代码行数超过10000行而告终。这就是为什么。如果你有超过10000行代码,那么你在一个片段中做的太多了。为什么不在frag中处理UI,在util类中处理所有非UI功能?它将减少您的代码。
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;
}
  //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;
      ]