gpt4 book ai didi

Android:弹出窗口:尝试完成输入事件但输入事件接收器已被处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:17 26 4
gpt4 key购买 nike

我想在用户按下类别按钮时添加一个弹出窗口。该窗口将显示可用类别的列表。弹窗的相关代码如下:

onCreate:

    //popup choices
localArrayList = new ArrayList<String>();
localArrayList.add("action 1"); //0
localArrayList.add("action 2"); //1
localArrayList.add("action 3"); //2
localArrayList.add("action 4"); //3
localArrayList.add("action 5"); //4
popUpContents = new String[localArrayList.size()];
localArrayList.toArray(popUpContents);
popupWindowDogs = ppopupWindowDogs();

按下按钮的 Action

public void onClickBtn_action(View v) 
{
switch (v.getId())
{
case R.id.btn_category:
popupWindowDogs.showAsDropDown(v, -5, Constants.SCREEN_H / 15); break;
default:
return;
}
}

弹窗:

public PopupWindow ppopupWindowDogs() 
{
final PopupWindow localPopupWindow = new PopupWindow(this);
ListView lv = new ListView(this);
lv.setAdapter(new MyCustomArrayAdapter_POP(DB_Ex_ListActivity.this));
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if (position == 0)
{

}

localPopupWindow.dismiss();
}
});

localPopupWindow.setFocusable(true);
localPopupWindow.setOutsideTouchable(true);
localPopupWindow.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
localPopupWindow.setWidth(Constants.SCREEN_W / 2);
localPopupWindow.setHeight(Constants.SCREEN_H );
localPopupWindow.setContentView(lv);
return localPopupWindow;
}

private class MyCustomArrayAdapter_POP extends BaseAdapter
{
private LayoutInflater mInflater;
private Context mContext = null;
public MyCustomArrayAdapter_POP(Context context)
{
mContext = context;
mInflater = LayoutInflater.from(mContext);
}

public int getCount()
{
return localArrayList.size();
}

public Object getItem(int arg0)
{
return localArrayList.get(arg0);
}

public long getItemId(int position)
{
return position;
}

public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.listview_item, null);
}
TextView lv_item_text = (TextView) convertView.findViewById(R.id.lv_item_text);
lv_item_text.setText(category_list.get(position));
}
convertView.setLayoutParams(new ListView.LayoutParams((int)(Constants.SCREEN_W/2), (int)(Constants.SCREEN_W/7)));
return convertView;
}
}

问题:

按下按钮时不会显示弹出窗口。Logcat 报告

试图完成输入事件,但输入事件接收器已被释放。

最佳答案

在您对 showAsDropDown 的调用下方添加以下代码行

   popupWindowDogs.update(v,200,300 );

根据弹出窗口的宽度和高度调整 200 和 300。

就是这样!

关于Android:弹出窗口:尝试完成输入事件但输入事件接收器已被处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com