2017-10-15 38 views
0

下面是我第一次嘗試設置列表片段的代碼,該列表片段點擊一個活動(就像測試一樣)。 我遵循Android文檔示例:List Fragment ExampleonListItemClick顯示爲「從未使用過」

但是,onListItemClick顯示爲「從未使用過」。當我運行的應用程序我的列表中顯示,但是當我點擊其中的項目我只是得到下面的返回:

d/ViewRootImpl:ViewPostImeInputStage ACTION_DOWN

的XML:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.example.administrationuser.piclo.ListViewFragment" 
     tools:showIn="@layout/activity_list_view" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="0dp" 
     > 

    <FrameLayout 
     android:id="@+id/list_container_id" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     tools:layout_editor_absoluteY="8dp" 
     tools:layout_editor_absoluteX="8dp"> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:drawSelectorOnTop="false" > 
     </ListView> 

    </FrameLayout> 

</android.support.constraint.ConstraintLayout> 

這裏是列表片段:

package com.example.administrationuser.piclo; 

import android.app.Activity; 
import android.content.Intent; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 



public class ListViewFragment extends ListFragment { 

    public ListViewFragment() {} 

     String[] myStringArray = new String[]{"aa","bbb","ccccc","dddddd"}; 

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

      // Populate list with our static array of titles. 
      setListAdapter(new ArrayAdapter<String>(getActivity(), 
        android.R.layout.simple_list_item_activated_1, myStringArray)); 
     } 


    @Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     showDetails(position); 
    } 

     void showDetails(int index) { 

      int mCurCheckPosition = index; 
      Intent intent = new Intent(); 
      intent.setClass(getActivity(), MessageDetails.class); 

      intent.putExtra("Inty", mCurCheckPosition); 
      startActivity(intent); 

      startActivity(intent); 
      } 

} 

回答

0

我已經解決了這個問題。 這對於任何經驗豐富的Android開發人員來說都是微不足道的,但對於那些可能陷入此陷阱的初學者來說,這似乎是顯而易見的......

...不要將您的父級活動命名爲'ListView'。 ..它混淆了OnListItemClick覆蓋,因爲它不知道它應該重寫哪一類ListView ...實際的一個或者你可能通過父類活動的最糟糕可能的名稱選擇創建的那個。