2017-11-13 17 views
1

PlaceHolderViewライブラリを使用して、FacebookのAndroidアプリのようなコンテンツの無限リストを表示しています。私はそれのためにInfinitePlaceHolderViewを使用していました。それは次のようになります。PlaceholderViewでカードにOnClickListenerを設定する方法は?

そして、ここでは物語は、ユーザーがカードビューをクリックすると、それはあるでしょう新しい活動に彼を取る、その後大きい場合、それは今output

どのように見えるかですその話の詳細。このために、リスナーを追加する必要があります。しかし、私はどのような文書も見つけることができませんでした。ドキュメンテーションは、これらのカードがすべて動的に作成されていることを示しています。これらのカードにはIDがないので、リスナーを置くことができます。

これを実装する方法は?ステップ[イベントバインドの例を持っているドキュメントの3で

答えて

0

だから、私がやったことは以下の通りである:

私に上記のビューを含むfeed.xmlファイルには、全体のビューに対してidを設定しました。それから私はidこととhereからItemView.javaを使用使用:

だから、

feed.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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:id="@+id/home_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/grey_100" 
    android:orientation="vertical" 
    android:weightSum="4" 
    tools:context="com.example.shamsad.tutionhub.activities.FeedActivity"> 

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="?android:attr/actionBarSize" 
     android:id="@+id/tbHome" 
     android:background="@color/colorPrimary" 
     app:titleTextColor="@color/grey_100"> 
    </android.support.v7.widget.Toolbar> 

    <com.mindorks.placeholderview.InfinitePlaceHolderView 
     android:id="@+id/loadMoreView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 


</LinearLayout> 

ItemView.java

@Click(R.id.rootView) 
    public void onCardClick() { 
     Intent intent = new Intent(mContext, DetailActivity.class); 
     intent.putExtra("title", mInfo.getTitle()); 
     intent.putExtra("caption", mInfo.getCaption()); 
     intent.putExtra("salary", mInfo.getSalary()); 
     intent.putExtra("routine", mInfo.getRoutine()); 
     intent.putExtra("time", mInfo.getTime()); 
     Log.d("sajid", "onClick"); 
     mContext.startActivity(intent); 
    } 

を、このonCardClick()方法では、クリック可能なIDは、このコード@Click(R.id.rootView)によって設定されます。それだけです。基本的にはcard-view全体をクリック可能なものに設定します。

また、この偉大な図書館の作者Janisher Aliのおかげで、私は彼に連絡し、彼は多くの助けをしてくれました。

Thisはすばらしい図書館です。 RecyclerViewよりもずっといいです。あなたはそれを試してみることができます:)

0

@Animate(Animation.ENTER_LEFT_DESC) 
@NonReusable 
@Layout(R.layout.gallery_item_big) 
public class ImageTypeBig { 

    @View(R.id.imageView) 
    private ImageView imageView; 

    private String mUrl; 
    private Context mContext; 
    private PlaceHolderView mPlaceHolderView; 

    public ImageTypeBig(Context context, PlaceHolderView placeHolderView, String url) { 
     mContext = context; 
     mPlaceHolderView = placeHolderView; 
     mUrl = url; 
    } 

    @Resolve 
    private void onResolved() { 
     Glide.with(mContext).load(mUrl).into(imageView); 
    } 

    @LongClick(R.id.imageView) 
    private void onLongClick(){ 
     mPlaceHolderView.removeView(this); 
    } 

} 

詳細情報: https://github.com/janishar/PlaceHolderView#step-3-create-item-class-to-bind-and-define-view-operations

+0

実際には、画像ビューが大きいので、それは実際には画像ビューだけで動作します。私の場合、カード全体のリスナーを設定したいのですが。 – sphoenix

+0

コンポーネントをクリック可能/トゥッチに設定し、イベントを消費するカード内のコンポーネントがないことを確認してください。 –

+0

何も動作していません – sphoenix

関連する問題