在OnClickListener OnClick返回后,执行控件在何处传输?附加代码

时间:2012-03-30 10:10:53

标签: android actionlistener

相关代码段:

public class MyPreference extends Preference {

    public MyPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.ctx = context;

        this.setOnPreferenceClickListener(new OnPreferenceClickListener() {

            public boolean onPreferenceClick(Preference preference) {
                Toast.makeText(ctx, "Preference has been clicked", Toast.LENGTH_LONG).show();

                return true;
            }
        });
    }
}

现在我想在onPreferenceClick处理程序返回true时进行一些处理(基本上调用finish())。

指针?

修改 在onClick中添加了finish(),但它无法正常工作。没错。只是祝酒而已。我打算在MyPreference点击后关闭应用程序

public boolean onPreferenceClick(Preference preference) {
                Toast.makeText(ctx, "Preference has been clicked", Toast.LENGTH_LONG).show();

                MainPreferenceActivity mainPref = new MainPreferenceActivity();
                mainPref.finish();

                return true;
            }

可能我做错了。创建一个MainActivity的newInstance不会杀死我想的父MainActivity,对吗?我是Java和android的新手。对不起:(!

2 个答案:

答案 0 :(得分:0)

尝试使用Eclipse调试代码,您可以在其中设置调试点,并可以检查流量以及每个变量中的不同值。甚至你可以逐步调试。

使用f8移动到下一个调试点并逐步调试是使用f6。

这可以帮助我们检查代码中的每个位置。

答案 1 :(得分:0)

如果您想跟踪代码的执行流程,我建议您使用Log.e(TAG,“”),并在Logcat窗口(Eclipse组合)中观察它。 对于你的问题,我有两个想法:

1)如果你想完成,那么在OnClick方法中完成它。

2)您还可以在onClick方法中设置一个标志,例如:

if(flag) {
    doSomething();
} 

如果已设置标志,则doSomething例程正确。