Android开发之简单备忘录
超常見控件ListView
大家在日常使用各種app時,有沒有注意到,你會常常向上滑動屏幕來瀏覽下面的信息。例如滑動QQ看消息列表,翻閱微博最新消息等等。
那數據是如何顯示到ListView里面(即呈現在用戶界面上)的呢?
- 存儲數據可以用數組或者List集合。
- 使用ArrayAdapter(數組適配器)作為橋梁,將數據綁定在ArrayAdapter上面。
- 通過適配器將數據更新到ListView上進行展示。
先實現一個簡單的例子:展示大量水果名
//主活動代碼MainActivity.java public class MainActivity extends AppCompatActivity {String[] fruits = {"Apple", "Banana", "Orange", "Watermelon", "Pear", "Grape", "Pineapple","Cheery", "Mango", "Apple", "Banana", "Orange", "Watermelon", "Pear"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, fruits);ListView listView = (ListView)findViewById(R.id.list_view);listView.setAdapter(adapter);//關聯適配器} }//布局文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_height="match_parent"android:layout_width="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="水果列表展示"android:gravity="center_horizontal"android:textSize="24sp" /><ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout>界面呈現如下:
補充:
1、ArrayAdapter adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, fruits);適配器有很多種,這里我們使用ArrayAdapter來實現,注意ArrayAdapter的構造函數中依次傳入當前上下文(就是當前的Activity),ListView子布局的id,需要適配的數據。這里的simple_list_item_1是Android內置的布局文件,里面只有一個TextView,用于顯示一段簡單的文本。
2、ListView listView = (ListView)findViewById(R.id.list_view);創建ListView對象,通過findViewById()方法找到ListView的id名稱,使用(ListView)強制轉型。
3、listView.setAdapter(adapter);調用ListView的setAdapter()方法,就構建好的適配器對象傳進去,數據和ListView控件的聯系就建立起來了。
實現簡單備忘錄
準備實現的功能:
- 一個提示輸入文字的控件,輸入準備添加的文字。
- 點擊添加按鈕向ListView中添加輸入的文字。
- 使用ListView展示添加的數據。
按照要求,先實現整體布局。使用LinearLayout線性布局,分別使用TextView、EditView、Button、ListView控件實現大致框架。 布局文件代碼如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_height="match_parent"android:layout_width="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="請輸入備忘錄內容"android:gravity="center"android:textAlignment="center"android:textSize="24sp" /><EditTextandroid:id="@+id/edit"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="編輯..."/><Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="添加到備忘錄"/><ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout>實現效果:
為Button對象設置一個監聽器,在編輯框輸入添加的文字,點擊按鈕后添加到ListView控件。 主活動代碼如下:
public class MainActivity extends AppCompatActivity{EditText ed;Button button;ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button);ed = (EditText)findViewById(R.id.edit);adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1);ListView listView = (ListView)findViewById(R.id.list_view);listView.setAdapter(adapter);//關聯適配器adapter.add("看電影");adapter.add("聽歌");adapter.add("看書");adapter.add("吃飯");adapter.add("散步");button.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View view) {String add = ed.getText().toString();adapter.add(add);}});} }補充:
- 細心的朋友會發現上面的代碼里并沒有傳入ArrayAdapter構造函數所需的第三個參數,而是采用adapter自帶的add()方法初始化了一些數據。
- 點擊按鈕后,獲取添加的文字賦給String型變量add,再使用add()方法添加到ListView中實現整個功能。
實現效果如下(添加文字前):
添加文字后:
總結
如果你進階的路上缺乏方向,可以掃描下方二維碼加入我們的圈子和安卓開發者們一起學習交流!
以下全部內容都可以在微信中獲取!
-
Android進階學習全套手冊
-
Android對標阿里P7學習視頻
-
BATJ大廠Android高頻面試題
最后,借用我最喜歡的喬布斯語錄,作為本文的結尾:
人這一輩子沒法做太多的事情,所以每一件都要做得精彩絕倫。
你的時間有限,所以不要為別人而活。不要被教條所限,不要活在別人的觀念里。不要讓別人的意見左右自己內心的聲音。
最重要的是,勇敢的去追隨自己的心靈和直覺,只有自己的心靈和直覺才知道你自己的真實想法,其他一切都是次要。
總結
以上是生活随笔為你收集整理的Android开发之简单备忘录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通达信超音速巡航指标公式
- 下一篇: 讯飞语音输入法Android Pad版发