【发布时间】:2018-07-11 19:24:30
【问题描述】:
我正在尝试在 ListView 中的每一行上实现按钮,但我看到了很多主题,但我没有成功向我的添加代码。这是我的 MainActivity :
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> itemsAdapter;
private ArrayList<String> items;
private ImageButton formButton;
private ListView lvMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
commonFunction();
}
public void commonFunction() {
lvMain = (ListView) findViewById(R.id.lvMain);
items = new ArrayList<String>();
readItems();
itemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
items);
lvMain.setAdapter(itemsAdapter);
formButton = (ImageButton) findViewById(R.id.btnPlus);
formButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setLayoutActivity();
}
});
}
}
这是我的 activity_main.xml :
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lvMain"
android:layout_above="@+id/btnPlus" />
<ImageButton
android:layout_width="match_parent"
android:layout_height="65dp"
android:id="@+id/btnPlus"
android:layout_alignParentBottom="true"
app:srcCompat="@mipmap/ic_plus_foreground" />
有人知道怎么做吗?
【问题讨论】:
-
为 ListView 中所需的每种类型的行创建一个单独的 XML,然后在 ListAdapter 中从该 XML 布局文件创建行。您需要一个用于自定义行的自定义适配器。
-
您需要带有自定义 xml 行的自定义适配器。你不能用 new ArrayAdapter
(this, android.R.layout.simple_list_item_1, items); -
首先我建议你使用
RecyclerView:) 创建一个自定义适配器和@Override getItemViewType()然后你将根据返回的每个视图处理它;) 我可以举一个例子如果您决定进行此实施 -
使用按钮创建 h 自定义 Listview,使用此 stackoverflow.com/questions/15832335/…
-
你必须使用自定义适配器和自定义 row_item 布局