Android上的PlusOneButton如何知道用户是否已点击?

时间:2013-07-17 08:39:39

标签: android listener google-plus-one

在我的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();
    }
});

但它没有做任何事情,它不显示吐司信息。

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

如何检测用户点击此按钮?

3 个答案:

答案 0 :(得分:3)

不要将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

    }

}

答案 2 :(得分:1)

另外一个按钮提供了一个侦听功能来检测按钮点击。这是代码。

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

        }
    });