【问题标题】:android - how to use onActivityResult from a classandroid - 如何使用类中的 onActivityResult
【发布时间】:2016-08-10 12:55:16
【问题描述】:

我需要在不扩展活动的类中使用onActivityResult

我在课堂上使用此代码,此代码调用摄像头,调用 startActivityForResult 处理数据:

    startActivityForResult(captureIntent, CAMERA_CAPTURE);


    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

    }

问题是,我在课堂上有上下文,如何在课堂上处理和使用onActivityResult
我不想在活动中实现startActivityForResult,因为它会被使用大约 10 次而且我不想重复代码

我该怎么做?

【问题讨论】:

  • 你可以使用你的接口或意图广播
  • 没有得到'它会使用大约10次,我不想重复代码',你总是可以指定不同的请求代码并区分它们

标签: android android-camera android-adapter android-image


【解决方案1】:

您不需要在所有类中实现startActivityForResult。您只需创建一个简单的Interface 并实现taht 并使用主要活动来获取活动结果并将其发送到您的类。像这样:

界面:

 public interface IMyClass {
    void getResult(int requestCode, int resultCode, Intent data);
  }

主要活动:

public class MainActivity extends AppCompatActivity  {
  static MainActivity mainActivityOBJ;
  IMyClass requestedClass;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mainActivityOBJ=this;
   }

   public void startActivityForMe(IMyClass c , Intent intent,int requestCode)
   {
    requestedClass=c;
    startActivityForResult(intent,requestCode);
   }



   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     if(requestedClass!=null)
      {
        requestedClass.getResult(requestCode,resultCode,data);
      }
  }
}

和你的班级:

 public class MyClass implements IMyClass {
    @Override
    public void getResult(int requestCode, int resultCode, Intent data) {

     }

     private void StartAC()
      {
        Intent intent=new Intent(MainActivity.mainActivityOBJ,someActivity.class);
        MainActivity.mainActivityOBJ.startActivityForMe(this,intent,1);
      }
  }

【讨论】:

    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2014-03-13
    • 2013-05-13
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    相关资源
    最近更新 更多