2017-12-13 6 views
-2

UnosCertifikataクラスのポップアップウィンドウを表示したいと思います。テストのために、私はスタンドアロンプ​​ロジェクトとして作成するときに実際に動作するこのコードをコピーしましたが、実際にフラグメントを内部に保持する私のアプリケーションでは動作しません。このコードを見て、改善方法を教えてください。私はプログラミングの初心者だから私を裁かないでください。Androidのポップアップウィンドウがクラッシュする

public class UnosCertifikata extends Activity 
    implements OnItemClickListener { 
EditText stcwCertifikat; 
ListPopupWindow listPopupWindow; 

// input desired list 
String[] certifikat ={"Gmdss", "Mechanic", "Eletr.","Master", 
     "Officer"}; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_unos_certifikata); 

    stcwCertifikat = findViewById(
      R.id.et_odabirSTCWCertifikata); 
    listPopupWindow = new ListPopupWindow(
      UnosCertifikata.this); 
    listPopupWindow.setAdapter(new ArrayAdapter<>(
      UnosCertifikata.this, 
      R.layout.list_item, certifikat)); 
    listPopupWindow.setAnchorView(stcwCertifikat); 


    listPopupWindow.setWidth(10000); 
    listPopupWindow.setHeight(400); 

    listPopupWindow.setModal(true); 
    listPopupWindow.setOnItemClickListener(
      UnosCertifikata.this); 
    stcwCertifikat.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      listPopupWindow.show(); 
     } 
    }); 
} 

@Override 
public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
    stcwCertifikat.setText(certifikat[position]); 
    listPopupWindow.dismiss(); 
} 

}

ログ-catがここライン

listPopupWindow.show(); 

に私にエラーを与える私のログです...

12-13 07:00:18.786 2642-2642/com.example.robert.seamansbook E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.robert.seamansbook, PID: 2642 
    java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 
     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:437) 
     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407) 
     at android.widget.AbsListView.obtainView(AbsListView.java:2372) 
     at android.widget.DropDownListView.obtainView(DropDownListView.java:305) 
     at android.widget.ListView.measureHeightOfChildren(ListView.java:1408) 
     at android.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1257) 
     at android.widget.ListPopupWindow.show(ListPopupWindow.java:613) 
     at com.example.robert.seamansbook.UnosCertifikata$1.onClick(UnosCertifikata.java:46) 
     at android.view.View.performClick(View.java:6256) 
     at android.view.View$PerformClick.run(View.java:24697) 
     at android.os.Handler.handleCallback(Handler.java:789) 
     at android.os.Handler.dispatchMessage(Handler.java:98) 
     at android.os.Looper.loop(Looper.java:164) 
     at android.app.ActivityThread.main(ActivityThread.java:6541) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
    Caused by: java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView 
     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:424) 
     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)  
     at android.widget.AbsListView.obtainView(AbsListView.java:2372)  
     at android.widget.DropDownListView.obtainView(DropDownListView.java:305)  
     at android.widget.ListView.measureHeightOfChildren(ListView.java:1408)  
     at android.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1257)  
     at android.widget.ListPopupWindow.show(ListPopupWindow.java:613)  
     at com.example.robert.seamansbook.UnosCertifikata$1.onClick(UnosCertifikata.java:46)  
     at android.view.View.performClick(View.java:6256)  
     at android.view.View$PerformClick.run(View.java:24697)  
     at android.os.Handler.handleCallback(Handler.java:789)  
     at android.os.Handler.dispatchMessage(Handler.java:98)  
     at android.os.Looper.loop(Looper.java:164)  
     at android.app.ActivityThread.main(ActivityThread.java:6541)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)  
+1

「log-catは私の間違いを与える」と...何かエラーが出ますか? – John3136

+1

logcatエラーを送信してください。 – adnanyousafch

+0

私のエラーが見つかりました....私の "list_item.xml"に "TextView"を置く必要があったので、私のArrayAdapterは動作します:) –

答えて

0

は "list_item.xml" に私の間違いを発見されました.../ArrayAdapterが機能するようにTextViewをフォーマットしなければならなかった...

...どうもありがとう...

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="8dp" 
android:textStyle="bold" /> 
関連する問題