【问题标题】:PlusOneButton on Android how to know if user has clicked?Android上的PlusOneButton如何知道用户是否点击了?
【发布时间】:2013-07-17 08:39:39
【问题描述】:

在我的 Android 应用中,我可以点击 Google +1 按钮。

这适用于开发人员源材料 (https://developers.google.com/+/mobile/android/recommend) 中的以下代码:

mPlusClient = new PlusClient.Builder(this, this, this)
    .clearScopes()
    .build();  

mPlusOneButton = (PlusOneButton) findViewById(R.id.plus_one_button);

现在我想检测用户何时点击此按钮,所以我尝试了这个:

mPlusOneButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {                   
        Toast.makeText(this, "Thanks for your +1", Toast.LENGTH_LONG).show();
    }
});

但它什么也没做,它不显示 toast 消息。

作为替代方案,我正在考虑让玩家在按钮上点击两次:首先是一个常规的 Button 对象,它可以使加一按钮可见,第二个是加一按钮。但这是一种尴尬的用户体验

如何检测用户对该按钮的点击?

【问题讨论】:

    标签: android listener google-plus-one


    【解决方案1】:

    不要将 setOnPlusOneClickListener(或任何侦听器)与 SDK 13(可能还有未来版本)一起使用,它会导致错误(当您单击 +1 按钮时,进度指示器会无限旋转)。

    【讨论】:

    【解决方案2】:

    使用 ActivityForResult 触发用户选择。

    mPlusOneButton.setOnPlusOneClickListener(new PlusOneButton.OnPlusOneClickListener() {
                    @Override
                    public void onPlusOneClick(Intent intent) {
                        startActivityForResult(intent, 0);
                    }
                });
    

    检查结果代码

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == -1) {
          // OK or SHARE
    
        } else {
          //UNDO
    
        }
    
    }
    

    【讨论】:

    • +投票给你的答案!...我只需要知道是否按下了确定。有什么办法吗?
    • @iappmaker ,您可以使用SharePreference将用户选择的状态保存在onActivityResult
    • -1 的 resultCode 将无法确定用户按下的是 OK 还是 SHARE。因此,我怎么知道用户只按下了 OK 而不是 SHARE
    • 这是不可能的,事实上,如果按钮已经在+1,你再次点击它会返回0,如果是+1,然后点击撤消你会得到-1而不是0。
    【解决方案3】:

    另外一个按钮提供了一个监听函数来检测按钮点击。这是代码。

        mPlusOneButton.setOnPlusOneClickListener(new PlusOneButton.OnPlusOneClickListener() {
            @Override
            public void onPlusOneClick(Intent intent) {
                Log.w(tag,"plus one click");
    
            }
        });
    

    【讨论】:

    猜你喜欢
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    相关资源
    最近更新 更多