【问题标题】:Android Button clickAndroid 按钮点击
【发布时间】:2016-05-13 00:40:43
【问题描述】:

我想知道他们是否可以检查按钮是否被点击 X 次做某事。例如,我的 android 应用程序中有一个按钮,如果用户点击它超过 3 次,我想展示广告。我的项目的代码如下。我相信他们是在我的 onlcicklistener 上实现它的一种方式,但不知道如何去做。

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

import com.startapp.android.publish.StartAppAd;


public class ClipAdapter extends BaseAdapter {
   private StartAppAd startAppAd;
   private GridActivity m_context;
   private Soundboard m_soundboard;
   private static LayoutInflater inflater=null;


public ClipAdapter(GridActivity c, Soundboard s) {
    m_context = c;
    startAppAd = new StartAppAd(m_context);
    m_soundboard = s;
    inflater = ( LayoutInflater )m_context.
            getSystemService(Context.LAYOUT_INFLATER_SERVICE);


}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return m_soundboard.getSize();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return m_soundboard.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    try {
        final Clip c = m_soundboard.get(position);
        View rowView;

        if (c != null) {
            rowView = inflater.inflate(R.layout.grid_item_layout, null);
            TextView tv =(TextView) rowView.findViewById(R.id.textView);
            ImageButton button=(ImageButton)           rowView.findViewById(R.id.imageButton);
            //Button button = new Button(m_context);
            //button.setHeight(24);
            tv.setText(c.getTitle());
            m_context.registerForContextMenu(button);
            button.setTag(c);
            //button.getBackground().setColorFilter(new LightingColorFilter(0xffFFFFFF, 0xffFFFFFF));
            //button.setPadding(0,0,0,0);
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    m_context.play(c.getResourceId());
                }
            });

            //return button;
            return rowView;
        }
    }
    catch (IndexOutOfBoundsException e) {
        Log.e(getClass().getCanonicalName(), "No audio at position "
                + position);
    }
    return null;
}

}

【问题讨论】:

    标签: java android button onclicklistener


    【解决方案1】:

    buttonClickTimes 之类的变量定义为integer 并赋值给0。 在您的 onClickListener 方法中完成您的工作,并在您的 onClickListener 开始时像 buttonClickTimes++ 一样递增它,并在您的 onClick 方法中添加 if 语句

    所以你的代码应该是这样的:

    Button button;
    button.setOnClickListener(buttonClickHandler);
        View.OnClickListener buttonClickHandler= new View.OnClickListener() {
        public void onClick(View v) {
                 buttonClickTimes++;
              // do something when the button is clicked
    
    
    
               if(buttonClickTimes == 3) 
                  {//show your ad}
            }
        };
    

    编辑:将 buttonClickTimes 放在 onClick 方法的开头,因为您想在按钮点击 3 次时显示广告。

    【讨论】:

    • 不在 main 方法中(即使在 android 中也是什么?)。 if 也进入了 onClick 方法,因为这就是执行的内容。
    • @zapl Iment,在此活动中说 main。很抱歉造成误解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2011-07-14
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    相关资源
    最近更新 更多