Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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 如何在意图中调用此方法?_Java_Android - Fatal编程技术网

Java 如何在意图中调用此方法?

Java 如何在意图中调用此方法?,java,android,Java,Android,我拥有的:我有一个带有图像的RecyclerView,每个图像都有一个OnClickListener和一个Intent 我想要的:我想要在点击其中一张图片时触发另一个活动中的方法(MethodIwantToCall) 我的问题是:如何根据意图触发此方法?请,我将非常感谢代码示例的答案,我是新编程人员,有很多事情我不明白,提前谢谢 具有我要调用的方法的活动 public class MapsActivity extends FragmentActivity implements OnMap

我拥有的:我有一个带有图像的RecyclerView,每个图像都有一个OnClickListener和一个Intent

我想要的:我想要在点击其中一张图片时触发另一个活动中的方法(MethodIwantToCall)

我的问题是:如何根据意图触发此方法?请,我将非常感谢代码示例的答案,我是新编程人员,有很多事情我不明白,提前谢谢

具有我要调用的方法的活动

    public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,
        GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener,
        LocationListener {


 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        MethodIwantToCall();
    }


public void MethodIwantToCall(){

            String Restaurant = "restaurant";
                mMap.clear();
                String url = getUrl(latitude, longitude, Restaurant);
                Object[] DataTransfer = new Object[2];
                DataTransfer[0] = mMap;
                DataTransfer[1] = url;
                Log.d("onClick", url);
                GetNearbyPlacesData getNearbyPlacesData = new GetNearbyPlacesData();
                getNearbyPlacesData.execute(DataTransfer);
                Toast.makeText(MapsActivity.this,"Nearby Restaurants", Toast.LENGTH_LONG).show();
            }
        });
    }
我的RecyclerView适配器和调用此方法的位置

 public class AdapterDatos extends RecyclerView.Adapter<AdapterDatos.ViewHolder> {

 @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
        holder.etiNombre.setText(listalugares.get(position).getNombre());
        holder.foto.setImageResource(listalugares.get(position).getFoto());

        holder.foto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (position == 0){
                    Intent myIntent = new Intent(context, MapsActivity.class);
                    context.startActivity(myIntent);

                }
            }
        });
    }
}
公共类AdapterDatos扩展了RecyclerView.Adapter{ @凌驾 public void onBindViewHolder(@NonNull ViewHolder,final int位置){ holder.etiNombre.setText(listalugares.get(position.getNombre()); holder.foto.setImageResource(listalugares.get(position.getFoto()); holder.foto.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(位置==0){ Intent myIntent=新的Intent(上下文,MapsActivity.class); 背景。起始触觉(myIntent); } } }); } }
您可以通过在目标活动的意图中添加额外内容来处理此问题,为了简化工作,您可以在目标活动中创建一个静态方法,该方法将使用前面提到的额外内容向该活动返回意图

以下是一个例子:

// --- MapsActivity ---
private static final String EXTRA_TRIGGER_METHOD = "trigger_method";

public static Intent getIntent(Context context, boolean triggerMethod) {
    Intent intent = new Intent(context, MapsActivity.class);
    intent.putExtra(EXTRA_TRIGGER_METHOD, triggerMethod);
    return intent;
}

private boolean triggerMethod;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    // here we will assign to triggerMethod the value you passed to the intent when we started this activity
    triggerMethod = getIntent().getBooleanExtra(EXTRA_TRIGGER_METHOD, false);

    if (triggerMethod) {
        methodIWantToCall();
    }
}

// --- AdapterDatos ---
holder.foto.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (position == 0) {
            final boolean triggerMethod = true;
            Intent intent = MapsActivity.getIntent(context, triggerMethod);
            context.startActivity(intent);
        }
    }
}
这是一本书。也,