Android开发Android开发经验谈Android开发

Android开发之简单备忘录

2018-11-17  本文已影响5人  没想好昵称呵

超常见控件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>
  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 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>
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中实现整个功能。

Github地址

上一篇下一篇

猜你喜欢

热点阅读