Android按钮点击
问题描述:
我想知道他们是否是检查按钮是否被点击的方法X次做某事。例如,我在我的android应用程序中有一个按钮,如果用户点击它3次以上,我想显示一个广告。我的项目代码如下。我相信他们是一种在onlcicklistener上实现它的方式,但不知道如何去做。Android按钮点击
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;
}
}
答
defina像buttonClickTimes
作为integer
变量并分配给0
。 在您onClickListener
方法做你的工作,你的开头onClickListener
增加它像buttonClickTimes++
,把一个if
语句进行onClick
方法
使你的代码应该是这样的:
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次时显示广告。
不在主要的方法(甚至在android中是什么?)。 'if'也进入'onClick'方法,因为这就是执行的内容。 – zapl
@zapl我在这个活动中说主要。我为我的误会道歉。 –
@zapl编辑了我的答案。 –