-2
私はアンドロイドで全く新しいです。私は正しい質問をしているかどうか分からない!recyclerviewのインテントを使用して新しいアクティビティを開始
私は新しいアクティビティを開いていますが、問題があります。新しいアクティビティを開くためにクリックすると、毎回同じアクティビティが開きます。
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class Tab1Cours extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
ContentAdapter adapter = new ContentAdapter(recyclerView.getContext());
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView avator;
public TextView name;
public TextView description;
private Context context;
public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.tab1cours, parent, false));
context = itemView.getContext();
avator = (ImageView) itemView.findViewById(R.id.imageView);
name = (TextView) itemView.findViewById(R.id.title);
description = (TextView) itemView.findViewById(R.id.dis);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent;
switch (getAdapterPostion()){
case 0:
intent = new Intent(context, Tab1Semester1.class);
break;
case 1:
intent = new Intent(context, Tab1Semester2.class);
break;
case 2:
intent = new Intent(context, Tab1Semester3.class);
break;
case 3:
intent = new Intent(context, Tab1Semester4.class);
break;
case 4:
intent = new Intent(context, Tab1Semester5E.class);
break;
case 5:
intent = new Intent(context, Tab1Semester5G.class);
break;
case 6:
intent = new Intent(context, Tab1Semester6E.class);
break;
default:
intent = new Intent(context, Tab1Semester6G.class);
break;
}
context.startActivity(intent);
}
});
}
private int getAdapterPostion() {
return 0;
}
}
public static class ContentAdapter extends RecyclerView.Adapter<ViewHolder> {
// Set numbers of List in RecyclerView.
private static final int LENGTH = 8;
private final String[] mPlaces;
private final String[] mPlaceDesc;
private final Drawable[] mPlaceAvators;
public ContentAdapter(Context context) {
Resources resources = context.getResources();
mPlaces = resources.getStringArray(R.array.places);
mPlaceDesc = resources.getStringArray(R.array.place_desc);
TypedArray a = resources.obtainTypedArray(R.array.place_avator);
mPlaceAvators = new Drawable[a.length()];
for (int i = 0; i < mPlaceAvators.length; i++) {
mPlaceAvators[i] = a.getDrawable(i);
}
a.recycle();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()), parent);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.avator.setImageDrawable(mPlaceAvators[position % mPlaceAvators.length]);
holder.name.setText(mPlaces[position % mPlaces.length]);
holder.description.setText(mPlaceDesc[position % mPlaceDesc.length]);
}
@Override
public int getItemCount() {
return LENGTH;
}
}}
私の代わりにコンストラクタのごonBindViewHolder方法でonClickListener設定し
私はコード内の新たなんだ、私はそれを行う方法がわかりませんか?してください、コードを書くことができますか? –
私はあなたのlayout.xmlを所有していないので、コードを書くことができません。レイアウトのコンテナにIDを割り当て、クリックリスナーを割り当てます –
私はあなたにプロジェクトのソースコードを送信して見せますか? –