Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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
Java 在BaseAdapter中调用OnCitivityResult_Java_Android - Fatal编程技术网

Java 在BaseAdapter中调用OnCitivityResult

Java 在BaseAdapter中调用OnCitivityResult,java,android,Java,Android,我将一个参数从第二个活动传递到第一个活动,但是程序没有输入第一个活动中的activityresult方法,它什么都没有 在我的第一次活动中,我有两门课。 第一个我执行查询,调用第二个类ListAdapter: public class view_records extends Activity { public void getProduct() { comandSQL = "Select * from Inventario"; try { Stateme

我将一个参数从第二个活动传递到第一个活动,但是程序没有输入第一个活动中的activityresult方法,它什么都没有

在我的第一次活动中,我有两门课。 第一个我执行查询,调用第二个类ListAdapter:

public class view_records extends Activity {
   public void getProduct() { 
   comandSQL = "Select * from Inventario";      
   try {
    Statement statement = MainActivity.connect.createStatement();
    rs = statement.executeQuery(comandSQL);
    ArrayList<product_model> product_list = new ArrayList<product_model>();
    String tidno = "", tdesc = "";
        while(rs.next()){  
            tidno = rs.getString("No_");
            tdesc = rs.getString("Descripción Completa");
                product_model _ProductModel = new product_model();
             _ProductModel.setIdno(tidno);
             _ProductModel.setProductDesc(tdesc);
             _productlist.add(_ProductModel);
        }
        listview.setAdapter(new ListAdapter(this));

} catch (Exception e) {
    Log.e("ERROR",e.getMessage());
    }  
}

这是第二项活动的一部分

public class modificar_productos extends Activity implements OnClickListener {
String pos;
double costo;
Intent i;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.modificar_productos);

    i = getIntent();

    tvProd = (TextView) findViewById(R.id.tv_prod);
    tvDesc = (TextView) findViewById(R.id.tv_desc);

            tvProd.setText(i.getExtras().getString("id"));
    tvDesc.setText(i.getExtras().getString("desc"));
    pos = i.getExtras().getString("pos");
    btGuardar = (Button) findViewById(R.id.bt_guardar);
    btGuardar.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.bt_guardar:
        if (etCant.getText().toString().equals("")) {
            Toast.makeText(modificar_productos.this, "Por favor, ingrese la cantidad",Toast.LENGTH_LONG).show();
        } else {

          Intent data = new Intent();
          data.putExtra("pos",pos);
          setResult(RESULT_OK, data);
          finish();
        }
        break;
    }
}

}您使用了错误的条件:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if (RESULT_OK == request_code){ <--- here
     ...
    }
 }
requestCode是您开始活动的代码:
startActivityForResult(意图,请求代码)
,因此您可以这样使用它:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    switch (requestCode) {
        case request_code:
            if (resultCode == RESULT_OK) {
                // do your stuff here 
            }
        break;
    }
 }
编辑1:必须将
onActivityResult
方法放入
查看\u记录
活动
类中。
ListAdapter
是在
view\u records
中启动的,因此它会将结果传递给此活动

编辑2:刷新适配器

public class view_records extends Activity {

  ListAdapter mAdapter; // create adapter handler

  public void getProduct() {
    // ...
    mAdapter = new ListAdapter(this);
    listview.setAdapter(mAdapter);
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data){
      switch (requestCode) {
          case request_code:
              if (resultCode == RESULT_OK) {
                  mAdapter.notifyDataSetChanged();
              }
          break;
      }
   }

}

你好我试过了,但没用:(,我在一些示例中看到该方法有@override,但我无法这样做。你不能在ListAdapter类中使用
onActivityResult
。它必须在带有@override的Activity类中使用。将
onActivityResult
放入
查看记录
ActivityIt运行!!但是…我必须刷新我的适配器,然后从ListAda调用它pter类…您可以在ActivityResult方法中刷新适配器,选中编辑2。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    switch (requestCode) {
        case request_code:
            if (resultCode == RESULT_OK) {
                // do your stuff here 
            }
        break;
    }
 }
public class view_records extends Activity {

  ListAdapter mAdapter; // create adapter handler

  public void getProduct() {
    // ...
    mAdapter = new ListAdapter(this);
    listview.setAdapter(mAdapter);
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data){
      switch (requestCode) {
          case request_code:
              if (resultCode == RESULT_OK) {
                  mAdapter.notifyDataSetChanged();
              }
          break;
      }
   }

}