を実装することは、私のViewHolderクラスであり、 RecyclerViewアダプタ クラス私は新しい activity.Belowを起動する(リサイクラービューとカードビューを使用して)私の グリッド内の各項目についてのonClickを実装する方法を知っていただきたいと思いRecyclerviewアダプタでのonClick
は、これは私がCallbaとしてインターフェイスを使用して、私のRecyclerViewアダプタクラス
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.nfc.Tag; import android.nfc.TagLostException; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import java.util.List; public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> { private List<ItemObject> itemList; private Context context; public RecyclerViewAdapter(Context context, List<ItemObject> itemList) { this.itemList = itemList; this.context = context; } @Override public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) { View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null); RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView); return rcv; } @Override public void onBindViewHolder(RecyclerViewHolders holder, final int position) { holder.countryName.setText(itemList.get(position).getName()); holder.countryPhoto.setImageResource(itemList.get(position).getPhoto()); holder.countryPhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(view.getContext(),"This is Maps",Toast.LENGTH_SHORT).show(); } }); } @Override public int getItemCount() { return this.itemList.size(); } } //This is my Recycler View Holder Class import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener { public TextView countryName; public ImageView countryPhoto; public RecyclerViewHolders(View itemView) { super(itemView); itemView.setOnClickListener(this); countryName = (TextView) itemView.findViewById(R.id.country_name); countryPhoto = (ImageView) itemView.findViewById(R.id.country_photo); } @Override public void onClick(View view) { Toast.makeText(view.getContext(), "Clicked Country Position = " + getPosition(), Toast.LENGTH_SHORT).show(); } }
答えて
ですこのケースを処理するck。
まず、アダプタの内部にインターフェイスクラスを作成します。
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
private List<ItemObject> itemList;
private Context context;
private ItemClickListener mItemClickListener;
public RecyclerViewAdapter(Context context, List<ItemObject> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
return rcv;
}
public void addItemClickListener(ItemClickListener listener) {
mItemClickListener = listener;
}
@Override
public void onBindViewHolder(RecyclerViewHolders holder, final int position) {
holder.countryName.setText(itemList.get(position).getName());
holder.countryPhoto.setImageResource(itemList.get(position).getPhoto());
holder.countryPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mItemClickListener != null) {
mItemClickListener.onItemClick(position);
}
}
});
}
@Override
public int getItemCount() {
return this.itemList.size();
}
//Define your Interface method here
public interface ItemClickListener {
void onItemClick(int position);
}
}
次に、ActivityまたはFragmentでInterfaceを実装してリスナーを追加しましょう。
public class MyFragment extends Fragment
implements RecyclerViewAdapter.ItemClickListener {
private List<ItemObject> mItemList;
...
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
final Bundle savedInstanceState) {
...
//Make sure mItemList not NULL
RecyclerViewAdapter adapter = new RecyclerViewAdapter(getContext(), mItemList);
//Add Item Click listener
adapter.addItemClickListener(this);
}
@Override
public void onItemClick(int position) {
Toast.makeText(.getContext(),"Click on item: " + position,Toast.LENGTH_SHORT).show();
}
}
希望すると、これが役に立ちます。ここに新しいアクティビティを開くために意図をレコード生成する方法を尋ねることは、あなたが静的変数を作ることが最高pratice
ために怠惰な方法は推奨されません
を変更する必要があります研ぐある場合
回答をお寄せいただきありがとうございます。彼らは私のために働きます – Xcoder
@Xcoder :)助けを聞いて幸せです –
あなたのコードは、罰金のように見えますあなたのミアンのactivty魔女にその
public class MainActivity extends AppCompatActivity
public static Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setElevation(0);
activity=this;
}
}
してからクリック内側
ようrefranceにいくつかの事を保持しています0...
@Override
public void onClick(View v) {
Toast.makeText(.getContext(),"Click on item: " + position,Toast.LENGTH_SHORT).show();
startActivity(new Intent(MainActivity.activity, MyOtherActivity.class));
}
...
私はあなたの問題が何であるか、あなたの最初のポストから完全に明確でないんだけど、あなたがしたいすべてがちょうど次を追加し、あなたのRecyclerViewAdapter
にOnClickListenerを実装している場合:
まず、あなたのクラス宣言を変更これに:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> implements OnClickListener {
@Override
public void onClick(View view) {
Toast.makeText(this.getContext(),"Code to change activity goes here." ,Toast.LENGTH_SHORT).show();
}
最後に、アダプタクラスにOnClickListenerを設定する必要があります。
@Override
public void onBindViewHolder(RecyclerViewHolders holder, final int position) {
holder.setOnClickListener(this);
holder.countryName.setText(itemList.get(position).getName());
holder.countryPhoto.setImageResource(itemList.get(position).getPhoto());
holder.countryPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mItemClickListener != null) {
mItemClickListener.onItemClick(position);
}
}
});
}
ここで私は個人的にこのようにはしません。
private AdapterOnClickListener implements OnClickListener() {
private String message;
public AdapterOnClickListener (String toast) {
message = toast;
}
public void onClick (View v) {
Toast.makeText(this.getContext(),toast ,Toast.LENGTH_SHORT).show();
}
}
を次にお電話アダプタに:
@Override
public void onBindViewHolder(RecyclerViewHolders holder, final int position) {
holder.setOnClickListener(new AdapterOnClickListener ("Instead of a string, I can be an intent. Then in your listener, you can call (If I recall correctly) getContext().startActivity(intent), and have an activity.");
holder.countryName.setText(itemList.get(position).getName());
holder.countryPhoto.setImageResource(itemList.get(position).getPhoto());
holder.countryPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mItemClickListener != null) {
mItemClickListener.onItemClick(position);
}
}
});
}
- 1. リサイクラービューのカードビューでリスナーインターフェイスがonClickと連携していません
- 2. リサイクラービューGridLayoutManager - 私は、次の動作を実現GridLayoutManagerとRecyclerViewを実装しようとしている各行
- 3. SQL - 私はMYSQLに知っていただきたいと思います
- 4. フックは、私が知っているしたいと思い
- 5. 私は添付画像としてUIImageのフェージングコーナー/サイドを作ることができる方法を知っていただきたいと思い
- 6. CodeIgniterのコンストラクタロードデータベース+は、私は私が私のCodeIgniterのコンストラクタに次のコードを追加する方法を知っていただきたいと思い変数
- 7. 私は私は2つの間のすべてのパスを見つけることができるコードを実装する方法について質問したいと思い、私はRプログラミングに新たなんだと私はR. を使用してグラフを表すに関与してい
- 8. 私はrecyclerviewの各項目は、それだけのためのスペースを作るためにどのように浮動ボタンでカバーなっているaccessedbecauseいくつかのUI elements.Atlastその項目のUIをすることはできません持っている活動のrecyclerviewと、フローティングアクションボタンを追加したRecyclerview
- 9. OnClickとOnClientClickの両方を使用しているときにOnClickが動作しない
- 10. 違いは、私は、この違いを知っていただきたいと思い
- 11. 私はasynctaskを使用してフラグメント内にrecyclerviewを実装したい
- 12. recyclerviewで2つの異なるカードビューを使用しているときのエラー
- 13. ListViewアダプタ - 新しいアクティビティを起動するOnClick&ContextActionBarを起動するOnLongClick
- 14. のcrontab:私はアプリはフラグを使用している場合、私はcrontabファイルを使用してアプリケーションを実行することができますどのように知っていただきたいと思い旗
- 15. MySQLのご注文は、こんにちは、私は次のクエリにORDER BYを実行する方法を知っていただきたいと思い
- 16. 私はFlex to Serverのコメット/ゲーム用の長いポーリングを実装したいと思っています
- 17. Androidはと私は(距離値を使用して)ascendigの方法でソートしようとしている私は、アダプタ にバックグラウンドで別の項目の負荷を表示するカスタム項目リストのリストを持っている私のアプリで距離
- 18. スレッドでTextViewを作成するには?私は、スレッドの中のTextViewを作成する方法を知っていただきたいと思い
- 19. は、私はコアデータモデルについて学ぶことができる場所知っていただきたいと思い、あなたの入力
- 20. 私は、彼らがやっていることを知っているが、私はまだスクリプトを学んでいる誰かのためだと思う
- 21. Javaは、私は、このコマンドを実行したいと思っています
- 22. Androidのビューとしてダイアログポップアップでアダプタのグリッド項目を使用
- 23. 私はCにVTKの例を実行したいと思い++と私はVTKでこの例を実装したいと思います
- 24. 間違った項目は、だから私は、これら2つのArrayListを持っていた別のrecyclerview
- 25. Firebugを使用して目立たないonclickをトレースする方法
- 26. 私はJavaFXを使用して新しいフォームを作成しています。私は私が、私はアイテムのフォームに新しいカテゴリを追加する必要がある場合は、インベントリに新しい項目を追加するためのJavaFXを使って新しいフォームを作っています新しいカテゴリに
- 27. 私はデータベースから2つの列をvb.netを使ってコンボボックスにバインドしたいと思っています
- 28. 私のインタフェースAの実装では、インタフェースB型のインスタンスを返したいと思っています。
- 29. XMPPは、私は新しいメッセンジャーサービスを起動しようと思って
- 30. 新は私がSWIFT 3.0でNSNotificationCenterを言及したコードの行の下に知っていただきたいと思います
問題は何である私が代わりにやるだろうと、このように、あなたのアダプタにプライベート内部クラスを追加するのですか? – Enzokie
なぜ視聴者にクリックリスナーを追加しましたか? –