بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

رفتن به اکتیویتی مورد نظر از طریق موقعیت آیتم لیست ویو؟

مدیریت گفتگو
Atlas 10 سال پیش
آخرین تغییر: 10 سال پیش

چطور میتونم در اکتیویتی علاقه مندی با کلیک به ایتم های لیست ویو به اکتیویتی خودش برم؟اینم سورس ها

 //این اکتیویتی لیست ویو که با کلیک بر روی هر آیتم صفحه خودش باز میشه 
public class ActivityList extends Activity {

private MyDatabase MyDatabase;
public ListView listview;
SQLiteDatabase mydb;
public MyAdapter adapter;
int ids[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview1);
listview.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {




switch (position)
{
case 0:

ReadActivity.name = 1;
Intent newActivity = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity);
break;
case 1:
ReadActivity.name = 2;
Intent newActivity2 = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity2);
break;
case 2:

ReadActivity.name = 3;
Intent newActivity3 = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity3);

break;
case 3:
ReadActivity.name = 4;
Intent newActivity4 = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity4);
break;
case 4:

ReadActivity.name = 5;
Intent newActivity5 = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity5);

break;
case 5:
ReadActivity.name = 6;
Intent newActivity6 = new Intent(ActivityList.this, ReadActivity.class);
startActivity(newActivity6);
break;



}



}
});

MyDatabase = new MyDatabase(this);
mydb = MyDatabase.getReadableDatabase();
Cursor c = mydb.rawQuery("select id,name,category,like from list", null);
int ids[] = new int[c.getCount()];
String names[] = new String[c.getCount()];
String cats[] = new String[c.getCount()];
String likes[] = new String[c.getCount()];
int i = 0;
if(c.moveToFirst()) {
do {
ids[i] = c.getInt(0);

names[i] = c.getString(1);
cats[i] = c.getString(2);
likes[i] = c.getString(3);
i++;
} while (c.moveToNext());
c.close();
mydb.close();
}


MyAdapter adapter = new MyAdapter(this, names, cats, likes, ids);
listview.setAdapter(adapter);
}

}
// اینم اکتیویتی علاقه مندی که نمیدونم چطور موقعیت هر آیتم لیست ویو رو بگیرم و به صفحه خودش برم
public class Activity_FavList extends Activity {

private MyDatabase MyDatabase;
public ListView listview;
SQLiteDatabase mydb;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fav_list);
listview = (ListView) findViewById(R.id.listview1);
listview.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {




}
});

MyDatabase = new MyDatabase(this);
mydb = MyDatabase.getReadableDatabase();
Cursor c = mydb.rawQuery("select * FROM list WHERE like ='yes'", null);
int ids[] = new int[c.getCount()];
String names[] = new String[c.getCount()];
String cats[] = new String[c.getCount()];
String likes[] = new String[c.getCount()];
int i = 0;
if(c.moveToFirst()) {
do {
ids[i] = c.getInt(0);
names[i] = c.getString(1);
cats[i] = c.getString(2);
likes[i] = c.getString(3);
i++;
} while (c.moveToNext());
c.close();
mydb.close();
}


MyAdapter adapter = new MyAdapter(this, names, cats, likes, ids);
listview.setAdapter(adapter);
}
}
// اینم کلاس my Addapter
public class MyAdapter extends ArrayAdapter<String>{

private final Activity context;
String names[];
String cats[];
String likes[];
int ids[];

public MyAdapter(Activity context,String names[], String cats[], String likes[], int ids[]) {
super(context, R.layout.item, names);
this.context = context;
this.names = names;
this.cats = cats;
this.likes = likes;
this.ids = ids;
}

@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
return true;
}

@Override
public View getView(final int position, View view, ViewGroup parent) {

LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.item, null, true);
TextView txtName = (TextView) rowView.findViewById(R.id.txt_name);
TextView txtCat = (TextView) rowView.findViewById(R.id.txt_numer);
CheckBox favotite = (CheckBox) rowView.findViewById(R.id.favorite_check);
txtName.setText(names[position]);
txtCat.setText(cats[position]);
if(likes[position].equals("no")) {
favotite.setChecked(false);
} else if (likes[position].equals("yes")) {
favotite.setChecked(true);
}
Log.i("tag", "likes :"+likes[position]);
favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
MyDatabase MyDatabase = new MyDatabase(context);
SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
if(isChecked == true) {
mydb.execSQL("update list set like = 'yes' where id = " + ids[position]);
} else {
mydb.execSQL("update list set like = 'no' where id = " + ids[position]);
}
mydb.close();
}
});

return rowView;
}
}



نظرات

پاسخ‌ها 1

رضا 10 سال پیش

سلام فکر کنم روشی که انتخاب کردی زیاد درست نباشه . چون اگه دیتابیس شما 1000 تا row  داشته باشه نمیدونم میخوای چیکارش کنی ؟

بنظر من اگه دوست داری کار با دیتابیس (مخصوصا برای نوشتن کتاب) رو یاد بگیری ی سر به این لینک بزن

http://www.sourcebaran.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3.html

نظرات

Atlas 10 سال پیش
اره کاره اشتباهی کردم میخواستم حین این که یه برنامه ای بسازم چیزی هم یاد بگیرم الان که برنامم رو به اتمام میخوام علاقه مندی بهش اضافه کنم کارم سخت شده
Atlas 10 سال پیش
با این بلاخره تونستم مشکلمو حل کنم تا حدودی String text = parent.getItemAtPosition(position).toString();

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