![](/img/trans.png)
[英]How to set ActionBar title from a getView method inside baseAdapter
[英]How to set layout with XML in View for BaseAdapter getView() method
以下 Java 代码(来自https://www.intertech.com/Blog/android-adapters-adapterviews/ )来自 getView(),Android Adapter 类的方法实现,它在 Java 中构建了一个视图来填充项目在一个列表中。 我知道它是如何工作的,但同一个页面说它可以使用 XML 文件构建,这对我来说很有意义,但我找不到任何示例。 我了解如何使用 XML 资源文件使用 setContentView() 设置 Activity 布局。 但是我将如何调用 XML 资源文件来在 getView() 方法中构建视图?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
Context context = parent.getContext();
LinearLayout view = new LinearLayout(context);
view.setOrientation(LinearLayout.HORIZONTAL);
view.addView(new CheckBox(context));
TextView nameTextView = new TextView(context);
nameTextView.setText(courses.get(position).getName());
nameTextView.setPadding(0, 0, 10, 0);
view.addView(nameTextView);
TextView parTextView = new TextView(context);
parTextView.setText(Integer.toString(courses.get(position).getPar()));
view.addView(parTextView);
return view;
}
return convertView;
}
像这样
item_test.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="name" />
</LinearLayout>
适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder; // use holder
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_test, parent, false);
holder = new Holder(convertView);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.name.setText("name");
return convertView;
}
public class Holder {
private TextView name;
public Holder(View view) {
name = view.findViewById(R.id.name);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.