Android开发之简单备忘录

作者: 没想好昵称呵 | 来源:发表于2018-11-17 16:50 被阅读5次

    超常见控件ListView

    • 大家在日常使用各种app时,有没有注意到,你会常常向上滑动屏幕来浏览下面的信息。例如滑动QQ看消息列表,翻阅微博最新消息等等。
    • 那数据是如何显示到ListView里面的呢?(即呈现在用户界面上)
      1. 存储数据可以用数组或者List集合。
      2. 使用ArrayAdapter(数组适配器)作为桥梁,将数据绑定在ArrayAdapter上面。
      3. 通过适配器将数据更新到ListView上进行展示。
    • 先实现一个简单的例子:展示大量水果名
    //主活动代码MainActivity.java
    public class MainActivity extends AppCompatActivity {
    
        String[] fruits = {"Apple", "Banana", "Orange", "Watermelon", "Pear", "Grape", "Pineapple",
        "Cheery", "Mango", "Apple", "Banana", "Orange", "Watermelon", "Pear"};
    
        @Override
        protected 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">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="水果列表展示"
            android:gravity="center_horizontal"
            android:textSize="24sp" />
    
        <ListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </ListView>
    
    </LinearLayout>
    
    • 界面呈现如下:


      简单ListView实现
    • 补充:

    1. ArrayAdapter<String> 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控件的联系就建立起来了。

    实现简单备忘录

    • 准备实现的功能:
    1. 一个提示输入文字的控件,输入准备添加的文字。
    2. 点击添加按钮向ListView中添加输入的文字。
    3. 使用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">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="请输入备忘录内容"
            android:gravity="center"
            android:textAlignment="center"
            android:textSize="24sp" />
    
        <EditText
            android:id="@+id/edit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="编辑..."/>
    
        <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="添加到备忘录"/>
    
        <ListView
            android: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;
        @Override
        protected 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(){
                @Override
                public void onClick(View view) {
                    String add = ed.getText().toString();
                    adapter.add(add);
                }
            });
        }
    }
    
    • 补充:
    1. 细心的朋友会发现上面的代码里并没有传入ArrayAdapter构造函数所需的第三个参数,而是采用adapter自带的add()方法初始化了一些数据。
    2. 点击按钮后,获取添加的文字赋给String型变量add,再使用add()方法添加到ListView中实现整个功能。
    • 实现效果如下(添加文字前):


      添加文字前
    • 添加文字后:


      添加hello

    Github地址

    相关文章

      网友评论

        本文标题:Android开发之简单备忘录

        本文链接:https://www.haomeiwen.com/subject/csjrfqtx.html