• 您現在的位置是:首頁 >精選問答 > 2023-10-25 08:42:24 來源:

    ArrayAdapter用法(arrayadapter)

    導讀 大家好,我是小夏,我來為大家解答以上問題。ArrayAdapter用法,arrayadapter很多人還不知道,現在讓我們一起來看看吧!android中的Array ...

    大家好,我是小夏,我來為大家解答以上問題。ArrayAdapter用法,arrayadapter很多人還不知道,現在讓我們一起來看看吧!

    android中的Array adapter類用于把一個列表中的數據綁定到一個listview, 它就像一個橋梁,把數據和視圖聯系起來,下面以我的編碼實踐講解如何使用arrayadapter來實現自定義的顯示格式。如下圖所示,它的功能是在文本框輸入內容,點擊OK,可以把輸入的數據加到下面的列表中,列表每一行顯示輸入的內容和時期

    1.添加兩個layout, 一個是activity的, 一個是每一行數據的

    <Button

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/ok"

    android:clickable="true"

    android:id="@+id/btn3"

    android:layout_below="@+id/et1"/>

    <ListView

    android:id = "@+id/listview"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:layout_below="@+id/btn3"

    />

    </RelativeLayout>

    2.增加一個類用于保存每一行的數據:

    <?xml version="1.0" encoding="UTF-8"?>

    <RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background = "#ffffffff"

    >

    <TextView

    android:id="@+id/date"

    android:layout_width = "wrap_content"

    android:layout_height = "fill_parent"

    android:padding = "10dp"

    android:scrollbars = "vertical"

    android:fadingEdge = "vertical"

    android:layout_alignParentRight="true"

    android:textColor = "#ffff0000"

    />

    <TextView

    android:id="@+id/title"

    android:layout_width = "fill_parent"

    android:layout_height = "fill_parent"

    android:padding = "10dp"

    android:scrollbars = "vertical"

    android:fadingEdge = "vertical"

    android:layout_alignParentLeft="true"

    android:textColor = "#ffff0000"

    />

    </RelativeLayout>

    3.寫一個自定義的array adapter,覆蓋原來的getView方法,該方法的功能即是返回一個VIEW,這個view將被用于顯示一行數據

    package pack.xianle.test;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    public class ToDoItem {

    String task;

    Date created;

    public ToDoItem(String t, Date c){

    task = t;

    this.created = c;

    }

    public ToDoItem(String t){

    this(t, new Date(java.lang.System.currentTimeMillis()));

    }

    public String getTask(){

    return task;

    }

    public String getDate(){

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");

    String dataString = sdf.format(created);

    return dataString;

    }

    @Override

    public String toString(){

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");

    String dataString = sdf.format(created);

    return "["+ dataString +"]" + task;

    }

    }

    3.寫activity的代碼:

    package pack.xianle.test;

    import java.util.List;

    import android.content.Context;

    import android.view.LayoutInflater;

    import android.view.View;

    import android.view.ViewGroup;

    import android.widget.ArrayAdapter;

    import android.widget.LinearLayout;

    import android.widget.TextView;

    public class MyArrayAdapter extends ArrayAdapter<ToDoItem> {

    int resource;

    public MyArrayAdapter(Context c, int r, List<ToDoItem> items){

    super(c, r, items);

    this.resource = r;

    }

    @Override

    public View getView(int position, View v, ViewGroup parent) {

    ToDoItem item=getItem(position);

    LinearLayout todoView;

    String taskString = item.getTask();

    String dateString = item.getDate();

    if (v == null) {

    todoView = new LinearLayout(getContext());

    LayoutInflater iv = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    iv.inflate(resource, todoView, true);

    } else {

    todoView = (LinearLayout)v;

    }

    TextView data = (TextView)todoView.findViewById(R.id.date);

    TextView text = (TextView)todoView.findViewById(R.id.title);

    data.setText(dateString);

    text.setText(taskString);

    return todoView;

    }

    }

    ArrayAdapter也可以用于Spinner,如下代碼所示:

    package pack.xianle.test;

    import java.util.ArrayList;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.ArrayAdapter;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.ListView;

    public class ToDoList extends Activity {

    private ArrayList<ToDoItem> todoItems;

    private ListView mListView;

    private EditText mEditText;

    private MyArrayAdapter aa;

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    this.setContentView(R.layout.todolist);

    this.mListView = (ListView)this.findViewById(R.id.listview);

    this.mEditText = (EditText)this.findViewById(R.id.et1);

    todoItems = new ArrayList<ToDoItem>();

    aa = new MyArrayAdapter(this, R.layout.todoitem,todoItems);

    mListView.setAdapter(aa);

    Button btn = (Button)this.findViewById(R.id.btn3);

    btn.setOnClickListener(new OnClickListener(){

    public void onClick(View v){

    ToDoItem item = new ToDoItem(mEditText.getText().toString());

    todoItems.add(0, item);

    mEditText.setText("");

    aa.notifyDataSetChanged();

    }

    });

    }

    }

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app