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次时显示广告。

+0

不在主要的方法(甚至在android中是什么?)。 'if'也进入'onClick'方法,因为这就是执行的内容。 – zapl

+0

@zapl我在这个活动中说主要。我为我的误会道歉。 –

+0

@zapl编辑了我的答案。 –