自定义adapter Android
Adapter是介于data层和view层之间的媒介。
在Android中,自定义Adapter通常是通过扩展BaseAdapter
类来实现的。以下是一个简单的自定义Adapter的例子,它展示了如何在ListView中展示一个简单的字符串列表。
import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.List; public class CustomAdapter extends BaseAdapter { private Context context; private List<String> data; public CustomAdapter(Context context, List<String> data) { this.context = context; this.data = data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, parent, false); } TextView textView = (TextView) convertView; textView.setText(data.get(position)); return convertView; } }
在你的Activity中,你可以这样使用这个自定义Adapter:
import android.os.Bundle; import android.widget.ListView; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listView = (ListView) findViewById(R.id.listView); List<String> data = Arrays.asList("Item 1", "Item 2", "Item 3"); CustomAdapter adapter = new CustomAdapter(this, data); listView.setAdapter(adapter); } }
在这个例子中,我们创建了一个简单的自定义CustomAdapter
,它接收一个Context
和一个字符串列表。getView
方法负责为每个列表项创建视图,这里我们使用了Android提供的简单布局android.R.layout.simple_list_item_1
,它只包含一个TextView
。你可以根据需要自定义布局和视图组件。
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……