在android中列出文本和按钮

时间:2015-05-28 13:58:57

标签: android android-layout listview

我对Android很新。我正在开发一款应用程序。 应用程序的一部分应具有列表视图:(附)enter image description here

我想在android中实现相同的列表。

列表项结构: 文字| Button1 |按钮2

按钮行为: 如果用户单击第一个按钮(是按钮),它就会被选中。 但是当第二个按钮(没有按钮,X)时,在它下面会出现另外三个按钮选项。我用JavaScript实现了。

但不知道如何在android中接近它。

我正在寻找选项如何在android中有类似的行为(对于不同的设计方法开放)。

最好和/或最简单的方法是什么?

致以最诚挚的问候,

3 个答案:

答案 0 :(得分:1)

这很容易。您必须在适配器中创建两个按钮的单击侦听器。例如,检查thisthis。 快乐的编码!

答案 1 :(得分:1)

在layout.xml文件中,您可以默认将views / widgets / etc ...设置为android:visibility="invisible"android:visibility="gone"。然后,以编程方式在您的onclick事件中,只显示/隐藏它们:

yourElement.setVisibility(View.Visible);

答案 2 :(得分:1)

执行ListView:

String [] items = {"item1", "item2", "item3"...};
ListView listView = (ListView) findViewById(R.id.listview);
ListViewAdapter adapter = new ListViewAdapter(this,  items);
listView.setAdapter(adapter);

ListViewAdapter:

public class ListViewAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
private List<String> _listDataHeader; // header titles

public ListViewAdapter(Context context, String[] values) {
    super(context, R.layout.list_item_listview, values);
    this.context = context;
    this.values = values;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.list_item_listview, parent, false);
    TextView dateTextView = (TextView) rowView.findViewById(R.id.lblListItem1);
    Button button1 = rowView.findViewById(R.id.button1);
    Button button2 = rowView.findViewById(R.id.button2);
    Button button3 = rowView.findViewById(R.id.button3);
    Button button4 = rowView.findViewById(R.id.button4);
    Button button5 = rowView.findViewById(R.id.button5);
    LinearLayout linearLayoutFirstButton = rowView.findViewById(R.id.linearLayoutFirstButton);
    button2.setOnClickListenersetOnClickListener(new View.OnClickListener()            {

        @Override
        public void onClick(View v) {
              linearLayoutFirstButton.setVisibility(View.VISIBLE);                  
        }

    }
    return rowView;
}
}

您的list_item_listview.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:weightSum="3">

<LinearLayout
android:orientation="vertical" 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout1"
android:layout_weight="2">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/list_item_textview"/>

</LinearLayout>
<RelativeLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/layout2"

    android:layout_weight="1">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/linearLayoutFirstButton"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button1"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button2"
            android:layout_weight="1"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:visibility="gone"
        android:layout_below="@+id/linearLayoutFirstButton"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button3"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button4"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button5"
            android:layout_weight="1"
            />

    </LinearLayout>

</RelativeLayout>

买家注意:未经测试的代码。