嗨我是我的应用程序中的新手我创建了一个按钮和一个textview
当我们点击我的按钮时,我想显示微调列表,当我们选择任何一行时,我想在我的textview中显示该数据
为此我写了下面的代码,但当我们点击按钮微调器不显示按钮
下面它显示的像我的下图,我想在我的按钮下方显示该列表,请帮助我
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/mainlayout"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:textSize="20dp"
android:id="@+id/title"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:gravity="center"
android:text="title" />
<Button
android:id="@+id/imageViewplaces"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20dp"
android:text="OK"
android:onClick="ClickButton" />
</LinearLayout>
<Spinner
android:layout_below ="@+id/mainlayout"
android:layout_marginRight="10dp"
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:prompt="@string/spinner_title" />
</LinearLayout>
public class SpinnerList extends AppCompatActivity {
String [] spinnerList = {"first","second","third"
};
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_layout);
spinner = (Spinner)findViewById(R.id.spinner);
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerList);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
spinner.setVisibility(spinner.GONE);
}
public void ClickButton(View view){
spinner.performClick();
}
答案 0 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@id/imageViewplaces"
android:orientation="horizontal"
android:paddingBottom="15dp"
android:paddingTop="15dp">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="center"
android:text="title"
android:textSize="20dp" />
</LinearLayout>
<Button
android:id="@+id/imageViewplaces"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:onClick="ClickButton"
android:text="OK" />
<Spinner
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_below="@+id/imageViewplaces"
android:layout_alignParentRight="true"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
/>
</RelativeLayout>
答案 1 :(得分:0)
使用相对布局作为包装,而不是使用linearlayout来有效地实现此目的。 您可以使用relativelayout
指定微调器严格保留在按钮下方答案 2 :(得分:0)
<Spinner
android:id="@+id/name_of_board_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:overlapAnchor="false"/>
答案 3 :(得分:0)
如果我理解正确,您希望列表位于按钮下方。如果是,那么我建议你改用PopupMenu
。
代码
PopupMenu popup = new PopupMenu(this, country /* your button */);
for (int i = 0; i < spinnerList.length; i++)
popup.getMenu().add(1, i, i + 1, spinnerList[i]);
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
// perform your task
return false;
}
});
希望这会以某种方式帮助你。