-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)
「log-catは私の間違いを与える」と...何かエラーが出ますか? – John3136
logcatエラーを送信してください。 – adnanyousafch
私のエラーが見つかりました....私の "list_item.xml"に "TextView"を置く必要があったので、私のArrayAdapterは動作します:) –