android按钮点击toast,关于button点击事件中setOnClick等元素的解读以及方法?以及toast的位置以及作用?...
此文末參考鏈接:
此段代碼的教程以及使用接口的方式、switch語句的教程鏈接為鏈接1.
匯總里說的有更多的實(shí)現(xiàn)方法,為鏈接2。
文中鏈接為視覺統(tǒng)一,鏈接均于文末,以上為方便文中跳轉(zhuǎn),加了文中的跳轉(zhuǎn)鏈接。
以下代碼為我學(xué)習(xí)button以及監(jiān)聽器和點(diǎn)擊事件相關(guān)的簡(jiǎn)單代碼:
直接上代碼,討論與咨詢中教程鏈接于參考鏈接中(如果需要我將教程文字放上來):
package com.example.felixxiong.uitest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; //需要添加buton包導(dǎo)入
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mButton = (Button)findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener(){
@Override
public void OnClick(View view){
Toast.makeText(MainActivity.this.,"點(diǎn)擊了Toast",Toast.LENGTH_SHORT).show();
}
});
}
}
以上代碼我的初次理解
Button mButton就是賦一個(gè)值mbutton,
button findviewbyid就原本是一個(gè)返回view,但是因?yàn)楦鶕?jù)ID里的button就返回一個(gè)button實(shí)例,這個(gè)過程就是Button mButton = (Button)findViewById(R.id.button);
這一行,
下面就是注冊(cè)一個(gè)監(jiān)聽器,調(diào)用構(gòu)造器View.OnClickListener,之后重寫onclick,在后面括號(hào)里寫自己的邏輯?
返回button實(shí)例后就是一個(gè)向下轉(zhuǎn)型的過程,就是(Button)findViewById(R.id.button);,等號(hào)后半段
大體概括是:先取名字,之后獲得ID向下轉(zhuǎn)型返回實(shí)例,之后注冊(cè)監(jiān)聽器,重寫方法,寫自己的跳轉(zhuǎn)邏輯?
關(guān)于討論以及咨詢交流匯總
setOnClickListener
GSX:
mButton.setOnClickListener(new View.OnClickListener(){
//注冊(cè)監(jiān)聽器,調(diào)用View.OnClickListener構(gòu)造器
XY:這不是個(gè)類,是個(gè)接口
還有的問題在"銜接的問題"
問題:Java中,類使用new就可以當(dāng)對(duì)象使用,所以這里的setOnClickListener是匿名內(nèi)部類,或者是接口?
GSX:PH說new View.OnClickListener是對(duì)象,教程里說里面?zhèn)魅雜et這個(gè)是對(duì)象,類變成new不就是當(dāng)對(duì)象使用了,所以等于是對(duì)象,new 后面調(diào)用構(gòu)造器,可是XY說set是接口不是構(gòu)造器,而且我還沒到調(diào)用接口這一個(gè)步驟
XY:應(yīng)該不是構(gòu)造器,因?yàn)榛卣{(diào)函數(shù)是一個(gè)對(duì)象而不是實(shí)現(xiàn)的方法
new View.OnClickListener
GSX:new不是定義構(gòu)造器么?
PH:是對(duì)象
XY:接口的new不能是構(gòu)造方法吧?
問題1:View.OnClickListener是對(duì)象,之前說new是引用構(gòu)造器,new的前面setOnClickListener使用new就可以編程對(duì)象使用,對(duì)象傳入對(duì)象?
問題2:new不應(yīng)該是調(diào)用構(gòu)造器,教程里寫的是對(duì)象?是不是View.OnClickListener不是構(gòu)造器?
OnClick()
GSX:Listener之后都是點(diǎn)擊邏輯吧?
PH:OnClick()方法內(nèi)是點(diǎn)擊邏輯
問題:toast僅僅是氣泡?在實(shí)際的開發(fā)應(yīng)用中,這個(gè)應(yīng)該也算是點(diǎn)擊之后的邏輯?因?yàn)榻坛讨惺强梢赃M(jìn)行實(shí)戰(zhàn)添加的,點(diǎn)擊之后可以出現(xiàn)
toast
GSX:以上代碼也可以單獨(dú)添加toast,還有使用接口的方式也可以實(shí)現(xiàn)toast,是不是有兩種方法?
PH:這個(gè)是寫在監(jiān)聽器里的,所以是監(jiān)聽器,點(diǎn)擊后的邏輯都是監(jiān)聽器實(shí)現(xiàn)的,沒監(jiān)聽器就不知道此按鈕是否被點(diǎn)擊…反正不用監(jiān)聽器,toast做不出來,所以兩種方法是不存在的
問題:toast是寫在監(jiān)聽器里的么?看教程中點(diǎn)擊事件可以根據(jù)這種代碼即可實(shí)現(xiàn),還有一種方式就是增加switch語句和case中實(shí)現(xiàn),下面的鏈接2有更多的實(shí)現(xiàn)方法……
如果說toast是寫在監(jiān)聽器里的,那監(jiān)聽器是不是包括了以下代碼:
mButton.setOnClickListener(new View.OnClickListener(){
@Override
public void OnClick(View view){
Toast.makeText(MainActivity.this.,"點(diǎn)擊了Toast",Toast.LENGTH_SHORT).show();
}
而不只只是含有以下這一行?
自定義button名稱.setOnClickListener(new View.OnClickListener(){
關(guān)于本段代碼
點(diǎn)擊事件
GSX:你們點(diǎn)擊事件用的是接口(使用switch語句),還是轉(zhuǎn)換實(shí)例向下轉(zhuǎn)型(即本代碼)?
XH:點(diǎn)擊事件不用接口用什么?
GTF:這個(gè)有很多重載的方式
問題:點(diǎn)擊事件,以上代碼可以作為點(diǎn)擊事件(綁定)方式之一,還是僅僅用于注冊(cè)監(jiān)聽器?
因?yàn)殒溄?以及鏈接2中也有涉及使用接口進(jìn)行點(diǎn)擊事件(即switch語句的方式)
關(guān)于使用接口的方式綁定事件
GSX:教程里還有一個(gè)方法就是使用接口點(diǎn)擊事件,使用的是switch語句,之后里面有toast,但是僅僅是現(xiàn)在的綁定方法也可以出先toast,但是有人說toast是寫在監(jiān)聽器里的,邏輯是在onClick后的括號(hào)里面寫
PZ:看你怎么設(shè)計(jì),都可以實(shí)現(xiàn),一般switch里越簡(jiǎn)單越好
GSX:Android點(diǎn)擊事件都是需要接口的?
PZ:不是必須的,看你怎么設(shè)計(jì),多看看設(shè)計(jì)模式
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的android按钮点击toast,关于button点击事件中setOnClick等元素的解读以及方法?以及toast的位置以及作用?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android message 代码,A
- 下一篇: 滕州房管局备案查询网站(滕州房管局备案查