2017-08-26 37 views
0

我试图做一个列表弹出(名为下拉列表)窗口内我的alertdialog在我的片段。为什么 - >“ListPopupWindow:无法调用getMaxAvailableHeightMethod ....使用公共版本”?

但设置锚和适配器后,我收到错误说:

“I/ListPopupWindow:上PopupWindow无法调用getMaxAvailableHeightMethod(查看,整型,布尔型)采用了公版。”

如何解决这个问题?请帮忙。

下面是我的代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.dblistview, container, false); 

    final MyDBHandler dbHandler = new MyDBHandler(getActivity(), null,null,1); 
    DBReader dbReader = new DBReader(getActivity()); 
    ListView dbListView = (ListView) v.findViewById(R.id.dbListing); 

    if (dbHandler.dbSelectQuery("*",null) != null){ 
     dbCustomAdapter dbListViewAdapter = new dbCustomAdapter(getActivity(), 
       R.layout.dbadapterview, dbHandler.dbSelectQuery("*",null)); 
     dbListView.setAdapter(dbListViewAdapter); 
     dbListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View v, int i, long l) { 
       AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 

       TextView goodTV= (TextView) v.findViewById(R.id.goodTV); 
       final ListPopupWindow droplist = new ListPopupWindow(getContext()); 
       droplist.setAnchorView(goodTV); 

       ArrayList<String> disntictList = dbHandler.selectDisntictQuery(MyDBHandler.COLUMN_party); 
       ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(),android.R.layout.simple_list_item_1,disntictList); 
       droplist.setAdapter(adapter); 

       for (String item : disntictList){ 
        Log.i("Item name", item); 
       } 

       View mView = getActivity().getLayoutInflater().inflate(R.layout.listview_filterbox,null); 
       mView.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         try { 
          droplist.show(); 
         } catch (Exception e) { 
          Toast.makeText(getContext(), "Height null?",Toast.LENGTH_LONG).show(); 
         } 
        } 
       }); 


       builder.setCancelable(true); 
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         Toast.makeText(getContext(), "Ok clicked",Toast.LENGTH_LONG).show(); 
        } 
       }); 

       builder.setView(mView); 


       AlertDialog dialog = builder.create(); 
       dialog.show(); 

      } 
     }); 

    } else { 
     Toast.makeText(getActivity(), "Database currently empty...",Toast.LENGTH_LONG).show(); 
    } 

    return v; 
} 

回答

0

哦,我终于得到它。 我犯了两个错误:

  1. 对于OnClickListenerTextView,它应该是

    A +医学百科 .setOnClickListener(新View.OnClickListener()....

    而不是

    MVIEW .setOnClickListener(新View.OnClickListener()....

  2. 在确定我TextViewdblistView.setOnItemClickListener内。因为我附上dblistView.setOnItemClickListener内调用mView我自己的XML布局,所以对于

    TextView的A +医学百科=(TextView的)MView的 .findViewById(R.id.goodTV);代替

    TextView的A +医学百科=(TextView的)v.findViewById(R.id.goodTV);

相关问题