2016-02-24 45 views
0

我正在一個演示應用程序,並在此演示中使用片段,我有listView自定義listItem在此listView,我想捕獲listItem的點擊事件,我已經嘗試了很多方法很多,但什麼也沒發生,可anybuddy告訴我什麼是錯我的代碼,我的代碼如下: XML *ListItem單擊不工作在Android中的片段

<?xml version="1.0" encoding="utf-8"?> 
<one.tusk.stush.views.PostListItem xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="@dimen/activity_vertical_margin" 
    android:layout_marginLeft="@dimen/activity_horizontal_margin" 
    android:layout_marginRight="@dimen/activity_horizontal_margin" 
    android:layout_marginTop="@dimen/activity_vertical_margin" > 
    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="@dimen/activity_vertical_margin" 
     android:layout_marginLeft="@dimen/activity_horizontal_margin" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:layout_marginTop="@dimen/activity_vertical_margin" 
     android:background="#ffffff" > 
     <View android:layout_width="50dp" 
      android:layout_height="200dp" 
      android:layout_alignParentRight="true" 
      android:id="@+id/goodThing" 
      android:layout_below="@+id/buttonLikes"/> 
     <one.tusk.stush.views.PostGridItem 
      android:id="@+id/imageViewPostImage" 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      android:layout_marginTop="0dp" 
      android:adjustViewBounds="false" 
      android:contentDescription="Post image" 
      android:scaleType="centerCrop" 
      android:src="@drawable/ic_launcher" /> 

      <ProgressBar 
     android:layout_width="match_parent" 
     android:layout_marginTop="70dp" 
     android:layout_height="150dp" 
     android:id="@+id/loadingPost" 
     /> 

     <RelativeLayout 
      android:id="@+id/profilelist" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_alignLeft="@id/imageViewPostImage" 
      android:layout_alignRight="@id/imageViewPostImage" 
      android:layout_below="@id/imageViewPostImage" 
      android:alpha="1" 
      android:background="#ffffff" > 
      <RelativeLayout 
       android:id="@+id/photorelative" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_marginLeft="20dp" 
       android:layout_marginTop="7dp" > 
       <ImageView 
        android:id="@+id/imageViewUserImage" 
        android:layout_width="30dp" 
        android:layout_height="30dp" 
        android:adjustViewBounds="false" 
        android:contentDescription="User image" 
        android:maxHeight="30dp" 
        android:maxWidth="30dp" 
        android:minHeight="30dp" 
        android:minWidth="30dp" 
        android:scaleType="centerCrop" 
        android:src="@drawable/ic_launcher" /> 
       <ImageView 
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/avatar_overlay1" /> 
      </RelativeLayout> 
      <Button 
       android:id="@+id/buttonComment" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="15dp" 
       android:layout_toLeftOf="@+id/buttonLike" 
       android:background="@null" 
       android:drawableRight="@drawable/btn_comment" /> 
      <Button 
       android:id="@+id/buttonShare" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="37dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="20dp" 
       android:background="@null" 
       android:drawableRight="@drawable/more" /> 
      <Button 
       android:id="@+id/buttonLike" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="30dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_toLeftOf="@+id/buttonShare" 
       android:background="@null" /> 
      <TextView 
       android:id="@+id/textViewUsername" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="55dp" 
       android:paddingTop="10dp" 
       android:text="ss" 
       android:textColor="#0c5d55" 
       android:textSize="15sp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 
     <TextView 
      android:id="@+id/textViewPostText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/profilelist" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginTop="5dp" 
      android:paddingBottom="5dp" /> 
     <RelativeLayout 
      android:id="@+id/commentandlike" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textViewPostText"> 
      <TextView 
       android:id="@+id/numbercomment" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="10px" 
       android:layout_toRightOf="@+id/buttonLikes" 
       android:text="11111" 
       android:textColor="#9f9f9f" 
       android:textSize="14dp" /> 
      <Button 
       android:id="@+id/buttonLikes" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="16dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="17dp" 
       android:layout_weight="0.60" 
       android:background="@null" 
       android:text="Likes" 
       android:textColor="#9f9f9f" 
       android:textSize="14dp" /> 
      <TextView 
       android:id="@+id/textViewTimeAgo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="15dp" 

       android:text="aggooooo" 
       android:textColor="#9f9f9f" 
       android:textSize="14dp" /> 
      <View android:layout_width="1dp" 
       android:layout_height="10dp" 
       android:layout_below="@+id/buttonLikes"/> 
     </RelativeLayout> 
    </RelativeLayout> 
</one.tusk.stush.views.PostListItem> 

*

public class TimelineFragment extends BaseFragment implements LoaderManager.LoaderCallbacks<List<Post>>, OnRefreshListener, OnScrollListener,OnItemClickListener { 

    public static ListView mListViewTimeline; 

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 

     super.onActivityCreated(savedInstanceState); 
     total = 0; 
     mPullToRefreshLayout = (PullToRefreshLayout) getActivity().findViewById(R.id.ptr_layout); 
     ActionBarPullToRefresh.from(getActivity()).allChildrenArePullable().listener(this).setup(mPullToRefreshLayout); 

     mProgressBarLoading = (ProgressBar) getActivity().findViewById(R.id.progressBarLoading); 
     mTextViewNoItems = (TextView) getActivity().findViewById(R.id.textViewNoItems); 

     mTimelineAdapter = new TimelineAdapter(getActivity()); 

     mListViewTimeline = (ListView) getActivity().findViewById(R.id.listViewTimeline); 
     mListViewTimeline.setEmptyView(mProgressBarLoading); 
     mListViewTimeline.setAdapter(mTimelineAdapter); 

     mListViewTimeline.setOnScrollListener(this); 

     // mListViewTimeline.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
     mListViewTimeline.setVerticalScrollBarEnabled(false); 

     mListViewTimeline.setOnItemClickListener(this); 

     final Activity activity = getActivity(); 

     if(activity != null) { 
      final Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        getLoaderManager().initLoader(0, null, TimelineFragment.this); 
        //Do something after 100ms 
       } 
      }, 1000); 



      mTextViewNoItems.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(final View v) { 
        getLoaderManager().destroyLoader(0); 

        getLoaderManager().initLoader(0, null, TimelineFragment.this); 
        Log.d("CLICK", "REFRESH"); 

       } 
      }); 
     } 

    } 
@Override 
    public void onItemClick (AdapterView<?> parent, View view, int position, long id) { 

     Intent intentPostDetail = new Intent(getActivity(), PostDetailActivity.class); 
     Post post = mTimelineAdapter.getItem(position); 
     intentPostDetail.putExtra("Post", post); 
     startActivity(intentPostDetail); 
    } 
} 

**timelineadapter** 

package one.tusk.stush.adapters; 

import java.util.List; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 

import com.company.stush.R; 
import one.tusk.stush.connect.Post; 
import one.tusk.stush.views.PostListItem; 

public class TimelineAdapter extends ArrayAdapter<Post> { 

    private final LayoutInflater mInflater; 

    public TimelineAdapter(Context context) { 

     super(context, R.layout.list_item_post); 
     mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public void setData(List<Post> data) { 
     setNotifyOnChange(false); 
     clear(); 
     if (data != null) { 
      addAll(data); 
      notifyDataSetChanged(); 
     } 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     Post post = getItem(position); 
     PostListItem view; 
     if (convertView == null) { 
      view = (PostListItem) mInflater.inflate(R.layout.list_item_post, parent, false); 
     } else { 
      view = (PostListItem) convertView; 
     } 
     view.setPost(post); 
     return view; 
    } 
} 
+0

你有TimelineAdapter – theLazyFinder

+0

你在哪裏充氣佈局任何按鈕或點擊項目? – Jas

+0

請參閱我的編輯。 –

回答

-1

代替

@Override 
    public void onItemClick (AdapterView<?> parent, View view, int position, long id) { 

     Intent intentPostDetail = new Intent(getActivity(), PostDetailActivity.class); 
     Post post = mTimelineAdapter.getItem(position); 
     intentPostDetail.putExtra("Post", post); 
     startActivity(intentPostDetail); 
    } 

試試這個

mListViewTimeline.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

// do stuff here 
} 
}); 
+0

什麼都沒有發生.. :( –

+0

刪除mListViewTimeline.etOnItemClickListener(本); –