实施接口OnClickListener

时间:2020-07-02 04:41:30

标签: java android xml onclick onclicklistener

**编辑:**

我问这的主要原因是下面的代码,它实现了OnClickListener ,但是没有设置 new OnClickListener ,而是仅将上下文作为参数传递给OnClickListener

public class MainActivity extends Activity implements View.OnClickListener { 
  ImageSwitcher imageSwitcher; 
        Button btnPrevios, btnNext; 
        int[] LOGO = {  R.drawable.barca,     R.drawable.psg,  }; 
        int currentIndex = -1; 
     @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
       btnPrevios = //.......;  btnNext = //.....;
            btnPrevios.setOnClickListener(this); 
            btnPrevios.setOnClickListener(this); 
        imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher); 
         imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() { 
                @Override 
           //.......
            }); 
        } 
     
        public void onClick(View view) { 
            switch (view.getId()){ 
                case R.id.btnNext: 
                    if(currentIndex<LOGO.length-1){ 
                        currentIndex = currentIndex+1; 
                        imageSwitcher.setBackgroundResource(LOGO[currentIndex]); 
                    } 
                    break; 
        } 
    } 


但是Xml仍然需要如下所示的onClick

      <Button 
                android:id="@+id/btnPrevious" 
                android:onClick="onClick"  />  
                <Button 
                 android:id="@+id/btnNext" 
                  android:onClick="onClick" 
                        />  

**请在上述情况下实现OnClickListener的目的是什么

编辑:从这些评论中,我意识到您可能都不了解我的问题。

根据Mark

If you've implemented and set the OnClickListener in code, you do not need the android:onClick attribute in the layout XML

但是到目前为止,我所看到的代码实现了 界面OnClickListener并完成


button.setOnClickListener(this);

但是他们都没有使用

setOnClickListener(new onClickListener);

Pirho 所述。

他们做到了

Public void onClick(View v){
//sth
}

**与我的方法相比,这可能使重言式更加混乱或更加复杂。

似乎我缺少了一些东西**

Xml onClick如何在代码中工作,或者我缺少什么?我确实写了这样的onClick方法

Public void onClick(View v){
//sth
}

在扩展Activity类之后无需实现Interface View.OnClickListener,并且效果很好。

但是最近我看到了类似的东西

public class MainActivity extends Activity implements View.OnClickListener{
//.......

button.setOnClickListener(this);

}

Public void onClick(View v){
//sth
}

请,实现界面View.OnClickListener 的目的是什么,因为我仍然必须像在XML中一样始终声明 onClick =“ onClick”

0 个答案:

没有答案
相关问题