[英]Android Button click
我想知道他們是否是檢查按鈕是否被點擊 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;
}
}
將一個像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 次時顯示廣告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.