欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android點擊事件,android點擊事件處理

Android RecyclerView點擊事件處理

Android新引入的RecyclerView用來代替ListView,但是RecyclerView處理點擊和長按事件卻沒有ListView方便

創(chuàng)新互聯(lián)建站專業(yè)提供成都主機托管四川主機托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價格,機房位于中國電信/網(wǎng)通/移動機房,德陽服務(wù)器托管服務(wù)有保障!

RecyclerView并沒有onClickListener和onLongClickListener方法

這樣我們就需要在Adapter中創(chuàng)建一個接口

同時在adapter中創(chuàng)建該接口屬性

然后在adapter implements OnClickListener,View.OnLongClickListener,在方法onCreateViewHolder中,

在方法onBindViewHolder中,設(shè)置

特別注意:這里胡itemView即接受點擊事件的view,并不需要在ViewHolder中顯式地初始化,當(dāng)ViewHolder實例化之后,itemView也就自動實例化了。

這樣我們在adapter實現(xiàn)的onClick和onLongClick方法中,就可以

最后,在activity中實現(xiàn)接口OnRecyclerViewItemClickListener

即可實現(xiàn)點擊事件

android 中怎樣給按鈕添加點擊事件

xml文件代碼如下:

Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button1" /

Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button2" /

四種方法分述如下:

匿名內(nèi)部類:

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);

tst.show();

}

});

btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);

tst.show();

}

});

}

}

自定義單擊事件監(jiān)聽類:

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

class MyClickListener implements OnClickListener {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(new MyClickListener());

btn2.setOnClickListener(new MyClickListener());

}

}

Activity繼承View.OnClickListener,由Activity實現(xiàn)OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應(yīng)的處理

public class TestButtonActivity extends Activity implements OnClickListener {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

最后一種是我今天看到的一種寫法,在XML文件中“顯示指定按鈕的onClick屬性,這樣點擊按鈕時會利用反射的方式調(diào)用對應(yīng)Activity中的click()方法”

Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="onClick"

android:text="Button1" /

Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="onClick"

android:text="Button2" /

這里在輸完android:的時候按下 Alt+/ 會有 onClick 屬性的提示, 但輸入到 android:onClick=“ 的地方按下 Alt+/ 并沒有提示 onClick 選項,讓我突然覺得這里好像有點問題。

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

}

// 注意 這里沒有 @Override 標簽

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

這種寫法整個代碼中都不用聲明button就可以實現(xiàn)button的單擊事件。

以上就是四種實現(xiàn)按鈕單擊事件的方法。

粗略總結(jié)一下,就是按鈕少的時候用匿名內(nèi)部類會比較快,比如寫demo測試的時候或者登陸界面之類的。

按鈕多的情況我還是選擇第三種方法,方便。

關(guān)于第四種方法,我感覺最方便,但看了很多代碼還是覺得寫法不夠大眾化,感興趣的朋友可以對此研究研究。相信會有不少收獲。

Android中點擊事件功能實現(xiàn)示例

第一種點擊事件

在xml中設(shè)置onclick屬性

android:onClick="myOnclick"

第二種;獲取Button然后一個一個單獨綁定點擊事件

"

xmlns:tools=" "

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"?

android:id="@+id/btn_imgBtn"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="myOnclick"

android:text="imageButton"

/

android:id="@+id/btn_imgView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="myOnclick"

android:text="imageView"

/

public class MainActivity extends ActionBarActivity {

private Button btnImageBtn;

private Button btnImageView;

@Override

protected void onCreate(Bundle savedInstanceState) {

? ? super.onCreate(savedInstanceState);

? ? setContentView(R.layout.activity_main);

? ? btnImageBtn = (Button) findViewById(R.id.btn_imgBtn);

? ? btnImageView = ?(Button) findViewById(R.id.btn_imgView);

btnImageBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this, "點擊ImageButton", Toast.LENGTH_SHORT).show();

}

});

? ? btnImageView.setOnClickListener(new MyListener());

}

第三種:寫一個類(MyListener)實現(xiàn)OnClickListener接口,然后Button在設(shè)置onclickListener的時候new一個MyListener

btnImageView.setOnClickListener(new MyListener());

class MyListener implements OnClickListener{

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.btn_imgBtn:

Toast.makeText(MainActivity.this, "點擊ImageButton", Toast.LENGTH_SHORT).show();

break;

? ? ?case R.id.btn_imgView:

? ? ? Toast.makeText(MainActivity.this, "點擊imageView", Toast.LENGTH_SHORT).show();

break;

}?

第四種:整個類(MianActivity)實現(xiàn)onclickListener的接口

跳轉(zhuǎn)界面

Intent:意圖,用于訪問android中的組件

用Intent跳轉(zhuǎn)界面(activity)

第一步:new一個Intent()

Intent intent1 = new Intent(MainActivity.this,ImageButtonActivity.class);

startActivity(intent1);

public void myOnclick(View view){

?switch (view.getId()) {

case R.id.btn_imgBtn:

Intent intent1 = new Intent(MainActivity.this,ImageButtonActivity.class);

startActivity(intent1);

break;

? ? case R.id.btn_imgView:

? ? ?Intent intent2 = new Intent(MainActivity.this,ImageViewActivity.class);

startActivity(intent2);

break;

Intent intent = new Intent(當(dāng)前的activity,跳轉(zhuǎn)到的acticvity.class);

startActivity(intent);

3.ImageView

展示方式:scaleType:

4.ImageButton:

觸摸事件:當(dāng)控件或者屏幕唄觸摸的時候,產(chǎn)生的反應(yīng)

public boolean onTouchEvent(MotionEvent event) {

imageButton:現(xiàn)在已經(jīng)唄button代替,用于展示圖片的按鈕。不能顯示文字。

imageView

scaleType:圖片展示的方式

fitStart:展示在控件的上方

fitCenter:展示在控件的中間

fitEnd;展示在控件的下方

fitXY:不按照比例拉伸

matrix:矩陣模式

matrix可以設(shè)置圖片旋轉(zhuǎn),縮放。移動

獲取圖片的高度和寬度

int h = imgView.getDrawable().getIntrinsicHeight();

int w = imgView.getDrawable().getIntrinsicWidth();

Matrix m = new Matrix();

m.postRotate(45);

m.postRotate(45, w/2, h/2);

imgView.setImageMatrix(m);

移動事件:

按下:MotionEvent.ACTION_DOWN

抬起:MotionEvent.ACTION_UP

移動:MotionEvent.ACTION_MOVE

獲取當(dāng)前的移動事件,

event.getAction()

"

xmlns:tools=" "

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/img_01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:src="@drawable/ss"

android:scaleType="fitXY"/

android:id="@+id/img_02"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:src="@drawable/gl"

android:visibility="gone"

android:scaleType="fitXY"/

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/bird"

android:layout_gravity="center"

/

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="20sp"

android:textColor="#ff0000"

android:gravity="center"

android:text="小鳥飛"/

public class MainActivity extends Activity {

private ImageView img01;

private ImageView img02;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

img01 = (ImageView) findViewById(R.id.img_01);

img02 = (ImageView) findViewById(R.id.img_02);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

//System.out.println("被摸了");

if(event.getAction()==MotionEvent.ACTION_UP){

Log.v("TAG", "被抬起來");

if(img01.getVisibility()==View.VISIBLE){

img01.setVisibility(View.GONE);

img02.setVisibility(View.VISIBLE);

}else{

img01.setVisibility(View.VISIBLE);

img02.setVisibility(View.GONE);

}

}else if(event.getAction()==MotionEvent.ACTION_DOWN){

Log.v("TAG", "被按下了");

}else if(event.getAction()==MotionEvent.ACTION_MOVE){

Log.v("TAG", "移動了");

}

return super.onTouchEvent(event);

}

Android RecyclerView實現(xiàn)循環(huán)列表-點擊事件

源碼鏈接

效果圖

實現(xiàn)步驟:

1.在build.gradle文件中加入recyclerView庫

2.在main.xml中使用recyclerView布局

3.滾動列表中的每一項對應(yīng)一個對象,他們屬于同一類的實例。接著定義實體類,我做的是歌單列表,定義序號,名字和時長

4.設(shè)計列表項的樣式

4.使用適配器為列表項設(shè)置顯示的數(shù)據(jù)

4.1定義適配器的內(nèi)部類與列表項綁定

4.2適配器繼承自recyclerView.Adapter,要重寫三個方法,創(chuàng)建列表項視圖,復(fù)用加載,獲取列表項數(shù)量,到這一步,循環(huán)列表已經(jīng)可以實現(xiàn)滾動效果了。

5.為列表項添加點擊監(jiān)聽事件,使用接口回調(diào)

5.1仍然是在適配器中,定義接口

5.2在onBindViewHolder中為列表項設(shè)置監(jiān)聽

5.3在MainActivity中使用,實現(xiàn)onclick方法

【Android】記一次點擊事件失效排查

事情很簡單,一個返回按鈕設(shè)置了點擊事件,但是無論如何都觸發(fā)不了。

布局也很簡單,就是一個 LinearLayout 中,包含一個 TitleBar 和一個 RecyclerView:

首先排除了一些小白錯誤,確定了點擊事件確實綁定上了,但是卻無法點擊。

在網(wǎng)上搜索時,看到有人說到一種情況,就是按鈕被上面的控件覆蓋了,導(dǎo)致點擊事件沒有傳遞過來。

但是,這個界面很簡單啊,不可能存在被覆蓋的情況吧?

雖然感覺問題不大,但是還是點開了 Layout Inspector 查看了實時布局。

不看不知道,一看嚇一跳:

原來他是一個透明的 ActionBar?這也太坑了吧!

找到問題就好解決了,直接隱藏了系統(tǒng)的 ActionBar 即可。

android怎么設(shè)置按鈕點擊事件

通過setOnClickListener()來綁定單擊事件 例如:Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click //增加自己的代碼...... 例如下面的 final TextView text = (TextView) findViewById(R.id.textView1); text.setText("OnClick. " + " ...."); } });

網(wǎng)站欄目:android點擊事件,android點擊事件處理
鏈接URL:http://chinadenli.net/article26/phiocg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)網(wǎng)站收錄網(wǎng)站設(shè)計公司微信小程序Google建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化