如何在启动新活动的自定义首选项中实施onClick?

时间:2018-08-11 20:03:46

标签: android

如何在自定义首选项中使onClick启动新的主动性(startActivityForResult)?

我希望自定义首选项启动新活动,当它返回结果时,应将其保存在首选项中。我知道如何实现保存,但是我不确定如何实现onClick。

这是我在自定义首选项类中所做的:

@Override
protected void onClick() {
    Intent pickLocationIntent = new Intent(SettingsActivity.this, MapsActivity.class);
    pickLocationIntent.putExtra("latitude", 0.0);
    pickLocationIntent.putExtra("longitude", 0.0);
    startActivityForResult(pickLocationIntent, REQUEST_LOCATION);
}

不允许我这样使用startActivityForResult。

修改

总结一下:一个人如何实现自定义偏好设置,该偏好设置在单击后会打开新活动?

Edit2

如果有人需要,这里是解决方案:

https://stackoverflow.com/a/24885463/9801221

2 个答案:

答案 0 :(得分:0)

将此android:onClick="anyname"放入您要为其添加点击侦听器的布局项中。

public void anyname(View v) { Intent pickLocationIntent = new Intent(SettingsActivity.this, MapsActivity.class); pickLocationIntent.putExtra("latitude", 0.0); pickLocationIntent.putExtra("longitude", 0.0); startActivityForResult(pickLocationIntent, REQUEST_LOCATION); }

答案 1 :(得分:0)

要实现onClick事件,请使用您的类,例如您的MainActivity必须从数据包View中实现OnClickListener接口,例如public class SettingsActivity extends AppCompatActivity implements View.OnClickListener {。然后,您需要单击某些视图,然后通过在MainActivity中编写View.setOnClickListener(this)来实现OnClickListener。每当用户触摸此视图时,就会调用MainActivity的onClick方法。

要从MapsActivity获得结果,您只需在Activity中实现onActivityResult()方法即可。

我希望我没听错你的意思。 :)