0

私はListView配列からのアイテムを持っていますString[] statesList = {"Adult 1", "Adult 2","Adult 3","Child 1","Child 2","Child 1","Child 2","Child 2"};

TextViewアイテムがアダルト以外でクリックされた場合、非表示にしたいと思います。

これは、リストビューにデータを入力するために作成した関数です

protected void onCreate(Bundle savedInstanceState) {
    showPassengerListView();
}


    private void showPassengerListView() {


            String[]  passengerList ={"Adult 1", "Adult 2","Adult 3","Child 1","Child 2","Child 1","Child 2","Child 2"};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1, passengerList);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
if((passengerList[position].contains("Child"))|| (passengerList[position].contains("Infant"))){
                    dateofBirth.setVisibility(View.VISIBLE);
                }else{
                    dateofBirth.setVisibility(View.GONE);
                }

                }
        });
          **passengerInformationPopup()**
    }

public void passengerInformationPopup() {
        final Dialog dialog= new Dialog(IweenBookingPage.this,R.style.Dialog_Fullscreen);
        dialog.setContentView(R.layout.passenger_details_dialog); 
        String[] tittlearray ={"Mr.","Mrs.","Ms"};
        Spinner tittleSpinner = (Spinner) dialog.findViewById(R.id.Tittle);
         dateofBirth = (TextView)dialog.findViewById(R.id.dateofBirth);
        dateofBirth.setClickable(true);

        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, tittlearray); 

        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        tittleSpinner.setAdapter(dataAdapter);
        dialog.show();
    }

そして、私は例外を取得しています:

08-16 15:51:55.727: E/AndroidRuntime(15553): FATAL EXCEPTION: main
08-16 15:51:55.727: E/AndroidRuntime(15553): java.lang.NullPointerException
08-16 15:51:55.727: E/AndroidRuntime(15553):    at com.android.iweentravel.Book$5.onItemClick(Book.java:184)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.widget.AdapterView.performItemClick(AdapterView.java:298)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.widget.AbsListView.performItemClick(AbsListView.java:1114)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:2937)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.widget.AbsListView$1.run(AbsListView.java:3695)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.os.Handler.handleCallback(Handler.java:615)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.os.Handler.dispatchMessage(Handler.java:92)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.os.Looper.loop(Looper.java:153)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at android.app.ActivityThread.main(ActivityThread.java:4987)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at java.lang.reflect.Method.invokeNative(Native Method)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at java.lang.reflect.Method.invoke(Method.java:511)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
08-16 15:51:55.727: E/AndroidRuntime(15553):    at dalvik.system.NativeStart.main(Native Method)

ListViewからどの項目がクリックされたかを確認するには? クリックした項目に基づいて、 TextView を表示/非表示にする必要があります。主な問題は、を識別する方法です。アイテムは ListView で動的になりますが、大人、子供、幼児のようになります。

4

2 に答える 2

1

そのような TextView を非表示にすることができます

TextView.setVisibility(View.GONE) 

また

TextView.setVisibility(View.INVISIBLE) 

あなたがしたいことに応じて。

onItemClick() メソッド内のアイテムを識別する簡単な方法は次のとおりです。

listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 // for example like that
                 if(passengerlist[position].contains("Adult)") // do something

                 // or like that
                 TextView tv = (TextView) view.findViewById(R.id.text1);

                 if(tv.getText().toString().contains("Adult)") // do something
            }
        });
于 2013-08-16T09:59:56.900 に答える
0

あなたのonItemClick試みでは、次のようなものです:

TextView tv = (TextView) view.findViewById(R.id.yourTextViewId);
tv.setVisibility(View.GONE);
于 2013-08-16T10:02:52.557 に答える