2014-01-23 128 views
0

我是新來的android和我想要集成auto complete text view內彈出窗口。但是自動完成操作在彈出窗口內不起作用。如果我把自動完成文本視圖彈出自動完成工作正常。彈出窗口的autocompletetextview不工作彈出式窗口內

XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/popup" 
     android:layout_width="300dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" 
     tools:ignore="UselessParent" > 

     <FrameLayout 
    android:id="@+id/innertop" 
    android:layout_width="match_parent" 
    android:layout_height="55dp" 
     > 


    <AutoCompleteTextView 
     android:id="@+id/listitem" 
     style="@style/CodeFont" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="4dp" 
     android:background="@drawable/border" 
     android:hint="@string/search_products_" 
     android:textSize="12sp" 
     android:typeface="serif" /> 

    <Button 
     android:id="@+id/searchbtn1" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:layout_gravity="center_vertical|right" 
     android:layout_marginRight="10dp" 
     android:layout_marginBottom="1dp" 
     android:background="@drawable/search_icon" /> 

</FrameLayout> 

    </LinearLayout> 

</LinearLayout> 

活動Java代碼:

final TextView btnOpenPopup1 = (TextView)findViewById(R.id.textView6); 
           btnOpenPopup1.setOnClickListener(new TextView.OnClickListener(){ 

         @Override 
          public void onClick(View arg0) { 
          LayoutInflater layoutInflater 
          = (LayoutInflater)getBaseContext() 
          .getSystemService(LAYOUT_INFLATER_SERVICE); 
          View popupView = layoutInflater.inflate(R.layout.login_popup, null); 
            final PopupWindow popupWindow = new PopupWindow(
             popupView, 
             LayoutParams.WRAP_CONTENT, 
              LayoutParams.WRAP_CONTENT); 

            popupWindow.setFocusable(true); 
            popupWindow.showAsDropDown(btnOpenPopup, -50, -70); 

我已經在谷歌搜索。我可以找到警報對話框的解決方案,但不適用於模式窗口。如何解決這個問題?

+0

popupWindow.showAsDropDown(btnOpenPopup,-50,-70);在這裏嘗試積極的價值觀。 – Sush

+0

我試圖用積極的價值仍然無法正常工作。 – marsweb

+0

也許是主題,但爲什麼你在另一個裏面有線性佈局,然後是framelayout,你不能把它整合到一個佈局中嗎?我問,因爲它可能會導致一個問題,錯誤的佈局採取行動 –

回答

0

@Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_my);

final Button btnOpenPopup = (Button)findViewById(R.id.openpopup); 
    btnOpenPopup.setOnClickListener(new Button.OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 
      LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
      View popupView = layoutInflater.inflate(R.layout.activity_popup, null); 

      final PopupWindow popupWindow = new PopupWindow(
        popupView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, true); 


      popupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); 

      final EditText text = (EditText)popupView.findViewById(R.id.editText); // to write Review notes 

      final TextView txtRatingValue = (TextView)popupView.findViewById(R.id.txtRatingValue); // Rating Value 

      final RatingBar ratingBar = (RatingBar)popupView.findViewById(R.id.ratingBar); 
      ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
       public void onRatingChanged(RatingBar ratingBar, float rating, 
              boolean fromUser) { 

        txtRatingValue.setText(String.valueOf(rating)); 

       } 
      }); 

      // popupView.addListenerOnRatingBar(); 


      Button ok = (Button)popupView.findViewById(R.id.ok); // Database Codes to store the apps rating and review Data 
      ok.setOnClickListener(new Button.OnClickListener() { 

       @Override 
       public void onClick(View v) { 

        Toast.makeText(MyActivity.this, "Reminder Nikhil Keshri's Database code to Be added here....", Toast.LENGTH_LONG).show(); 

       } 
      }); 

      Button clear = (Button)popupView.findViewById(R.id.clear); // clearing button 
      clear.setOnClickListener(new Button.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        text.setText(""); 
        // txtRatingValue.setText("0.0"); 

       } 
      }); 


      // text.setBackgroundColor(); 
      Button close = (Button)popupView.findViewById(R.id.close); // closing the popup window 
      close.setOnClickListener(new Button.OnClickListener() { 

       @Override 
       public void onClick(View v) { 

        popupWindow.dismiss(); 
       } 
      }); 

      popupWindow.showAsDropDown(btnOpenPopup, -50, -70); 

     }}); 
}