在我的baseadapter类中有一个textview,当点击操作应用时,会出现一个弹出窗口,弹出窗口包含一个1-10的数字列表。 当我从列表中选择任何数字时,结果只会影响主列表的最后一行(为其创建适配器)。
我的问题是:弹出窗口在显示文本视图的地方打开,但我想在整个特定宽度和高度的屏幕上打开它。
这里有谁能解决这个问题? 提前致谢... 这是适配器类的代码
public class MyListAdapter extends BaseAdapter
{
public View getView(final int position, View v, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (v == null) {
v = inflater.inflate(R.layout.cart_list_item_row, null);
count = (TextView) v.findViewById(R.id.count);
count.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupWindow popUp = popupWindowshow(v);
popUp.showAsDropDown(v, 0, 0);
}
});
}
return v;
}
private PopupWindow popupWindowshow(View v) {
final PopupWindow popupWindow = new PopupWindow(activity);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity, android.R.layout.simple_dropdown_item_1line,
activity.getResources().getStringArray(R.array.item_arrays));
final ListView countList = new ListView(activity);
countList.setAdapter(adapter);
// set on item selected
countList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String data = (String) parent.getItemAtPosition(position);
Toast.makeText(activity, data, Toast.LENGTH_LONG).show();
count.setText(data);
adapter.notifyDataSetChanged();
popupWindow.dismiss();
}
});
popupWindow.setFocusable(true);
popupWindow.showAtLocation(v, Gravity.CENTER_VERTICAL, 0, 0);
popupWindow.setWidth(250);
popupWindow.setBackgroundDrawable(activity.getResources().getDrawable(R.color.white));
popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
// set the listview as popup content
popupWindow.setContentView(countList);
return popupWindow;
}
答案 0 :(得分:0)
通过在基本适配器中弹出窗口的位置使用自定义对话框解决此问题,因为适配器项宽度和高度是弹出窗口的父高度,这就是窗口不是全屏的原因。 谢谢你给我时间。