آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اکتیویتی در اندروید

138090  4 سال پیش  4 سال پیش
0 0

سلام خسته نباشید آقا سناریو اینه مثلا یه لیست ویو 10تا گزینه داره من میخوام رو هرکدوم از گزینه های لیست ویو کلیک کرد بره تو یه دونه اکتیویتی مطلب راجب خودشو نشون بده نه این که10تا اکتیویتی جدا بسازم ممنون میشم کمک کنید خسته نباشید اگه امکانش هست کدشو بزارید خیلی ممنون

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Milad  4 سال پیش
+1 0

درود، شما باید یک Adapter و لایه مورد نظر را بسازید و تمام کامپونت های ui رو تعریف و اتصال آن هارو برقرار کنید ک رو هر کدام از item ها کلید میکنید یک رویدادی انجام شود. و مثلا یک activity مشترک بسازید و یک آیدی ارسال کنید که بره از دیتابیس بخواند براساس آن آیدی یا همه اطلاعات را به سمت activity ارسال کنید با استفاده از putExtra. نمونه کد های یک adapter بصورت زیر است.

public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.ViewHolder> {
private ArrayList<NoteStruct> list;
private int freezePosition;

public NoteAdapter(ArrayList<NoteStruct> list) {
this.list = list;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_note, parent, false);

ViewHolder viewHolder = new ViewHolder(itemView);
return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
NoteStruct item = list.get(position);

holder.txtTitleNote.setText(item.title);
holder.txtDecriptionNote.setText(item.description);
holder.chkDone.setChecked(item.isDone);
holder.chkDone.setEnabled(false);

holder.layoutRoot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
General.openActivityAsBaseActivity(EditNoteActivity.class, Intent.FLAG_ACTIVITY_NEW_TASK, false, "POSITION", position);
}
});

holder.imgDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
list.remove(item);
notifyItemRemoved(position);
//this line below gives you the animation and also updates the
//list items after the deleted item
notifyItemRangeChanged(position, getItemCount());

}
});

freezePosition = 0;
holder.chkDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CheckBox checkBox = (CheckBox) view;
item.isDone = checkBox.isChecked();

freezePosition = position;
Toast.makeText(Base.context, "" + freezePosition, Toast.LENGTH_SHORT).show();
holder.chkDone.setEnabled(false);

if (item.isDone) {
int colorTaskDone = Base.context.getResources().getColor(R.color.cloudy_colorLayoutRootTaskDone);
holder.layoutRoot.setBackgroundColor(colorTaskDone);
} else {
int colorTaskNoDone = Base.context.getResources().getColor(R.color.cloudy_colorLayoutRootTaskNoDone);
holder.layoutRoot.setBackgroundColor(colorTaskNoDone);
}

}
});

if (item.isDone) {
int colorTaskDone = Base.context.getResources().getColor(R.color.cloudy_colorLayoutRootTaskDone);
holder.layoutRoot.setBackgroundColor(colorTaskDone); //#8800aa5a
} else {
int colorTaskNoDone = Base.context.getResources().getColor(R.color.cloudy_colorLayoutRootTaskNoDone);
holder.layoutRoot.setBackgroundColor(colorTaskNoDone); //#55ee0000
}
}

@Override
public int getItemCount() {
return list.size();
}

static class ViewHolder extends RecyclerView.ViewHolder {
ArrayList<CheckBox> chkDonelist = new ArrayList<>();

LinearLayout layoutRoot;

TextView txtTitleNote;
TextView txtDecriptionNote;
CheckBox chkDone;
ImageView imgDelete;

public ViewHolder(View itemView) {
super(itemView);

layoutRoot = (LinearLayout) itemView.findViewById(R.id.layoutRoot);

txtTitleNote = (TextView) itemView.findViewById(R.id.txtTitleNote);
txtDecriptionNote = (TextView) itemView.findViewById(R.id.txtDecriptionNote);
chkDone = (CheckBox) itemView.findViewById(R.id.chkDone);
imgDelete = (ImageView) itemView.findViewById(R.id.imgDelete);

chkDonelist.add(chkDone);
}
}
}


و همین طور نمونه کد برای ارسال داده به یک activity 

intent.putExtra(key, data.toString());

پاسخ به سوال 
پیام  4 سال پیش
0 0

سلام. شما می تونید صفحه مربوط به اکتیویتی رو در زمان اجرا تکمیل کنید، که روی هر عنصر کلیک شد به یه شکل تکمیل بشه

حالا اگه دقیق تر بنویسید قراره چه روندی طی بشه میشه دقیق تر بحث کرد

0 0
الان منظورتون پر کردن لیست ویو هست یا باز کردن یک اکتیویتی دیگ پس از کلیک رو هر ایتم؟ من خوشحال میشم بتونم کمک کنم (4 سال پیش)
0 0
آقای میلاد الان منظورتون با من بود؟ یا کسی که سوال کرده؟ (4 سال پیش)
0 0
درود، دوست عزیز ببخشید عکس نداشتید فکر کردم شما، سوال کردین و ادامه سوالتون بود. (4 سال پیش)
0 0
درود. خواهش می کنم. (4 سال پیش)
پاسخ به سوال 
پیام  4 سال پیش
0 0

درود. خواهش می کنم.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .