編輯:關於Android編程
Button btn = new Button(this); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
那麼下面通過一個Demo理解接口回調: 主線程開啟一個異步任務,當異步任務接收到數據,則把數據用TextView顯示出來 1、首先 我們需要定義一個接口,定義一個方法,參數為一個字符串: package com.xqx.InterfaceDemo; public interface ChangeTitle { void onChangeTitle(String title); } 2、寫一個異步任務,把接口作為構造方法參數,在doInBackground()方法中判斷如果有數據,則接口回調
package com.xqx.InterfaceDemo; import android.content.Context; import android.os.AsyncTask; public class MyTask extends AsyncTask<String,Void,String>{ private ChangeTitle changeTitle; public MyTask(ChangeTitle changeTitle) { this.changeTitle = changeTitle; } @Override protected String doInBackground(String... strings) { if (strings[0]!=null){ changeTitle.onChangeTitle(strings[0]); } return null; } }
3、主Activity,給異步任務參數傳this,即 接口回調方法在此類中執行,那麼就需要實現ChangeTitle接口,重寫接口中 onChangeTitle 方法
package com.xqx.InterfaceDemo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity implements ChangeTitle { private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) findViewById(R.id.textView); new MyTask(this).execute("我是標題"); } // 重寫接口方法,執行相應操作 @Override public void onChangeTitle(String title) { textView.setText(title); } }
這些天,項目裡加了一個功能效果,場景是: 假如有一個家居圖片,圖片裡,有各樣的家居用品: 桌子,毛巾,花瓶等等,需要在指定的商品處添加標記,方便用戶直接看到商品,點擊該標
從開源項目中看到 這個,就不由自主的收藏了~
之所以做了這麼一個Demo,是因為最近項目中有一個奇葩的需求:用戶拍攝照片後,分享到微信的同時添加備注,想獲取用戶在微信的彈出框輸入的內容,保存在自己的服務器上。而事實上
最近項目上有需求 ,要求狀態欄透明化 。還有需求是拖動狀態欄標題一下的內容,標題欄的顏色要變化 。這裡所謂的既是狀態欄著色,也是我們經常聽到的沉浸式狀態欄,關於沉浸式的稱
本文站在巨人的肩膀上 自我感覺又進了一步而成。基於翔神的大作基礎之上寫的