View Full Version : نمایش و استفاده از دکمه لایک و علاقه مندی ها
boysky68
چهارشنبه 05 فروردین 1394, 23:51 عصر
سلام دو ستان خسته نباشید
من یه کتاب کوچیک به عنوان اولین پروژه اندرویدم دارم مینویم.
تو برنامه لیست مطالب کتاب رو با استفاده از لیست ویو از دیتابیس میگیرم و نمایش میدم
خوب اومدم دوتا فیلد گذاشتم تو جدول برا لایک کردن و افزودن به علاقه مندی
مقدار اولیه که صفر هست.
حالا میخوام اگر کاربر از قبل مطلبی لایک کرده یا به علاقه مندی افزوده بود موقع لود مجدد از دیتابیس مثلا مشخص باشه لایک شده هست.
کلا میخوام اگر مقدار فیلد لایک یک بود دیگه بصورت لایک نشده نمایش نده مجدد .یا اگر تو لیست علاقه مندی ها بود مثلا بک گراند اون متن کمی تیره تر باشه نسبت به بقیه.
حالا نمیدونم چطور و کجا این فیلتر رو اعمال کنم.
امیدوارم منطورمو درست گفته باشم.
Abbas Naghdi
پنج شنبه 06 فروردین 1394, 01:27 صبح
سلام دو ستان خسته نباشید
من یه کتاب کوچیک به عنوان اولین پروژه اندرویدم دارم مینویم.
تو برنامه لیست مطالب کتاب رو با استفاده از لیست ویو از دیتابیس میگیرم و نمایش میدم
خوب اومدم دوتا فیلد گذاشتم تو جدول برا لایک کردن و افزودن به علاقه مندی
مقدار اولیه که صفر هست.
حالا میخوام اگر کاربر از قبل مطلبی لایک کرده یا به علاقه مندی افزوده بود موقع لود مجدد از دیتابیس مثلا مشخص باشه لایک شده هست.
کلا میخوام اگر مقدار فیلد لایک یک بود دیگه بصورت لایک نشده نمایش نده مجدد .یا اگر تو لیست علاقه مندی ها بود مثلا بک گراند اون متن کمی تیره تر باشه نسبت به بقیه.
حالا نمیدونم چطور و کجا این فیلتر رو اعمال کنم.
امیدوارم منطورمو درست گفته باشم.
سلام .
ببین دوتا راه داری
1 استفاده از دیتابیس که توصیه نمیکنم ولی مطمعن تره .
2 استفاده از shared preference
حالا من دیتابیسشو بهت میگم .
به هر تیبل یه فیلد بده به اسم مثلا Status این فیلد رو مقدار پیشفرضش 1 کن (هرچی دوس داری )
حالا تو برنامه همه رو با Status 1 میاره ... برنامه که باز میشه و کاربر کلیک میکنه تو برنامت میگی مثلا اگه روی ستاره کلیک شد آیدی تون متن رو بگیر مثلا 1 و Status رو بر اساس این ایدی بیار بیرون و اگخ 1 بود 2 کن و اگه 2 بود 1 کن .
حالا میای توی نمایش داخل لیست ویو میگی (وقتی داره لود میکنه ) میگی اگه این یک بود مثلا اینش کن و اگه 2 بود مثلا کاری دگه کن ... همش کد نویسیه و کد نویسیشم select و update ... کار خاصی نداره ...
.
boysky68
پنج شنبه 06 فروردین 1394, 10:12 صبح
سلام .
ببین دوتا راه داری
1 استفاده از دیتابیس که توصیه نمیکنم ولی مطمعن تره .
2 استفاده از shared preference
حالا من دیتابیسشو بهت میگم .
به هر تیبل یه فیلد بده به اسم مثلا Status این فیلد رو مقدار پیشفرضش 1 کن (هرچی دوس داری )
حالا تو برنامه همه رو با Status 1 میاره ... برنامه که باز میشه و کاربر کلیک میکنه تو برنامت میگی مثلا اگه روی ستاره کلیک شد آیدی تون متن رو بگیر مثلا 1 و Status رو بر اساس این ایدی بیار بیرون و اگخ 1 بود 2 کن و اگه 2 بود 1 کن .
حالا میای توی نمایش داخل لیست ویو میگی (وقتی داره لود میکنه ) میگی اگه این یک بود مثلا اینش کن و اگه 2 بود مثلا کاری دگه کن ... همش کد نویسیه و کد نویسیشم select و update ... کار خاصی نداره ...
.
مرسی عباس جان
من هم میخوام از دیتابیس استفاده کنم.
خودم برنامه نویس php هستم
میدونم باید چیکار کنم
اما چون اول راهم با آرایه های اندروید مشکل دارم! موندم چطور باید به آرایه بفهمونم که موقع نمایش اگر صفر بود یا اگر یک بود! تو همینش موندم این اگر رو باید کجا بزارم.اخه از کد زیر برای نمایش استفاده میکنم و میریزم تو آرایه
String[] columns = new String[] {
DBAdapter.KEY_MATN,
DBAdapter.KEY_LIKE,
DBAdapter.KEY_READ,
};
int[] to = new int[] {
R.id.matn,
R.id.like,
R.id.read,
};
ListView listView = (ListView) findViewById(R.id.listView1);
dataAdapter = new SimpleCursorAdapter(
this, R.layout.row_layout,
cursor,
columns,
to,
0);
listView.setAdapter(dataAdapter);
Abbas Naghdi
پنج شنبه 06 فروردین 1394, 11:09 صبح
شما باید اندیس to[2] رو به دست بیاری .
if(to[2] == 1)
{
}
else if(to[2] == 2)
{
}
البته من از تعریفات این کدت سر درنمیارم ...
String[] columns = new String[] {
DBAdapter.KEY_MATN,
DBAdapter.KEY_LIKE,
DBAdapter.KEY_READ,
};
int[] to = new int[] {
R.id.matn,
R.id.like,
R.id.read,
};
در کل روش دسترسی به آرایه اینه .
boysky68
پنج شنبه 06 فروردین 1394, 12:48 عصر
شما باید اندیس to[2] رو به دست بیاری .
if(to[2] == 1)
{
}
else if(to[2] == 2)
{
}
البته من از تعریفات این کدت سر درنمیارم ...
String[] columns = new String[] {
DBAdapter.KEY_MATN,
DBAdapter.KEY_LIKE,
DBAdapter.KEY_READ,
};
int[] to = new int[] {
R.id.matn,
R.id.like,
R.id.read,
};
در کل روش دسترسی به آرایه اینه .
اینو از تو یه سایت خارجی پیدا کردم والا!
ببخشید منبعی چیزی ندارید که بهاش کارم راه بیفته؟
یعنی یه کلاس خوب و کامل برا اتصال به دیتابیس و نمایش بصورت دلخواه...یا حداقل آموزشی خوب در این مورد
ممنون میشم
Abbas Naghdi
جمعه 07 فروردین 1394, 02:34 صبح
این لینک کمکت میکنه ...
http://www.kelidestan.com/android/index.php
c0mmander
جمعه 07 فروردین 1394, 11:36 صبح
http://barnamenevis.org/showthread.php?442515-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%84%DB%8C%D8%B3%D8%AA-%D8%B9%D9%84%D8%A7%D9%82%D9%87-%D9%85%D9%86%D8%AF%DB%8C-%D9%87%D8%A7&highlight=%D8%B3%D8%A7%D8%AE%D8%AA+%D8%B9%D9%84%D8 %A7%D9%82%D9%87+%D9%85%D9%86%D8%AF%DB%8C+%D9%87%D8 %A7+%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF
ویرایش:
لبته اون برنامه ای که دوستومون داخلش گذاشتن و لینکشم موجوده مال مطالب یکم قدیمه سایت اسفندونست که نویسنده اون مطلب تشکیل خانواده داده چند وقتیه ... خود اون برنامه رو فکر کنم به یک قیمت ناچیزی داخل سایتش برای فروش گذاشته منم دانلود کردم اما دیدم این طوری حذفش کردم .. (آدم خودشو بخاطر 500 تومن مدیون زن بچه کسی نکنه بهتره) لینم لینک مطلب اصلیش :
http://www.esfandune.ir/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%84%DB%8C%D8%B3%D8%AA-%D9%88%DB%8C%D9%88-%D8%B4%D8%AE%D8%B5%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/
boysky68
جمعه 07 فروردین 1394, 21:32 عصر
سلام دوستان
ممنون از لطف شما
اینطور تغییر دادم:
کلاسی بنام MyAdapter هست که متد getview توش بصورت زیر بکار رفته
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_S ERVICE);
View row = inflater.inflate(R.layout.row_layout, parent, false);
final TextView matn = (TextView) row.findViewById(R.id.matn);
final TextView like = (TextView) row.findViewById(R.id.like);
Cursor cursor = dbHelper.fetchAllCountries();
if (cursor != null) cursor.moveToFirst();
matn.setText(cursor.getString(cursor.getColumnInde x("name")));
like.setText(cursor.getString(cursor.getColumnInde x("like")));
return row;
}
و بر نمایش هم از کد زیر استفاده میکنم:
dbHelper = new DBAdapter(this);
dbHelper.open();
Cursor cursor = dbHelper.db.rawQuery("select _id from hezarjomle" , null);
String[] array = new String[cursor.getCount()];
int i = 0;
if (cursor.moveToFirst()) {
do {
array[i] = cursor.getString(cursor.getColumnIndex("_id"));
i++;
} while (cursor.moveToNext());
}else {
}
dbHelper.close();
ArrayAdapter<String> MyAdapter = new ArrayAdapter<String>(ShariatiPage.this
,android.R.layout.simple_list_item_1, array);
ListView lvShowNotes = (ListView) findViewById(R.id.listView1);
lvShowNotes.setAdapter(MyAdapter);
اما باز هم با اینکه میخوام متن و لایک رو تو تکست ویو های مربوطه نمایش بده این کار رو نمیکنه.:ناراحت:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.