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

نحوه گرفتن مقدار دیتابیس در اکتیویتی علاقه مندی ها(لطفا کمک کنید)

Atlas  10 سال پیش  10 سال پیش
0 0

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

این اکتیویتی لیست ویو هست:

 package com.nemone.favoritelist;

import android.os.Bundle;
import android.util.Log;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Adapter;
import android.widget.ListView;

public class MainActivity extends Activity {

private MyDatabase MyDatabase;
public ListView listview;
SQLiteDatabase mydb;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

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();
}

listview = (ListView) findViewById(R.id.listView1);
MyAdapter adapter = new MyAdapter(this, names, cats, likes, ids);
listview.setAdapter(adapter);
}

}

اینم اکتیویتی myadapter:


package com.nemone.favoritelist;

import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;

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 0
میتونید یه فیلد توی جدول داشته باشید که مثلا مقدار پیش فرضش صفره حالا هر آیتمی که توی علاقه ها ثبت میشه مقدار این فیلد رو 1 کن. حالا توی اکتیویتی علاقه ها رکوردهایی رو که مقدار این فیلدشون 1 هست رو بگیر برای اینکار از دستور WHERE توی کوئری استفان کنید (10 سال پیش)
0 0
فیلد likes این کارو میکنه فقط من زیاد وارد نیستم نمیدونم تو اکتیویتی چه کدهایی رو بنویسم براش (10 سال پیش)
0 0
دوستان من مدت زیادیه درگیر اینم یه برنامه کوچک نوشتم که میخوام علاقه مندی اضافه کنم تازه کار هم هستم اگه میتونید واضح توضیح بدین چکار کنم (10 سال پیش)
+1 0
دوست عزیز این تاپیک جامع هستش امیدوارم براتون مفید باشه لینک (10 سال پیش)
0 0
ممنون ولی این کلا فرق داره با اون چیزی که من تا به حال جلو رفتم من کلا 3 تا اکتیویتی دارم که سورس 2 تارو بالا گذاشتم و فقط میمونه کدهای علاقمندی (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
MeY3am  10 سال پیش
+1 0

برای نمایش لیست علاقه مندی ها از این متد استفاده کن

 private void DisplayFavorites() {

        Cursor cursor = G.database.rawQuery("SELECT * FROM table_name WHERE fav = 1", null);
        while (cursor.moveToNext()) {
            StructNote note_fav = new StructNote();
            note_fav.NAME = cursor.getString(cursor.getColumnIndex("name"));
            notesfav.add(note_fav);

        }
        cursor.close();
        adapter.notifyDataSetChanged();
    }

کد کامل کلاس

public class ActivityFav extends EnhancedActivity {

    private ListView              lstFav;
    private AdapterNoteFav        adapter;
    private ArrayList<StructNote> notesfav = new ArrayList<StructNote>();


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fav);

        lstFav = (ListView) findViewById(R.id.lst_fav);
        adapter = new AdapterNoteFav(notesfav);
        lstFav.setAdapter(adapter);

        DisplayFavorites();
    }


     private void DisplayFavorites() {

        Cursor cursor = G.database.rawQuery("SELECT * FROM table_name WHERE fav = 1", null);
        while (cursor.moveToNext()) {
            StructNote note_fav = new StructNote();
            note_fav.NAME = cursor.getString(cursor.getColumnIndex("name"));
            notesfav.add(note_fav);

        }
        cursor.close();
        adapter.notifyDataSetChanged();
    }
}

حتما در کلاس StructNote یه فیلد String به اسم NAME تعریف کن 


سئوالیم داشتی در خدمتم !

 

0 0
خیلی ممنون که پیگیرین ، من از این سورس استفاده کردم و کلاس های که شما گفتین داخلش نیست لطف کنید یه نگاه به سورس بندازین.http://www.mediafire.com/download/nwd65vd2ejvovpc/listview+custom+2.rar (10 سال پیش)
0 0
??? (10 سال پیش)

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