Android'le çalışmaya başlıyorum ve bu derse bir içerik listesiyle sahip oldum. Her bileşen için bir onay kutusu ve bir ekle düğmesi vardır. Bu verileri yerel bir veritabanına aktarmak istiyorum ancak nasıl gidileceğinden emin değilim. Veritabanı yardımcı sınıfına ihtiyacım var mı? Lütfen bana bir kod örneği veya onclick yöntemimde bunu nasıl uygulayacağınız verin. Aşağıdaki Benim kod ...Veritabanına veri eklemek Android
Tab2Activity.java
public class Tab2Activity extends Fragment {
public ArrayList<String> shoppingList;
public ArrayList<CheckBox> checkboxes;
// kamu CheckBox cb olduğu;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tab_two, container, false);
shoppingList = new ArrayList<String>();
checkboxes = new ArrayList<CheckBox>();
LinearLayout l = (LinearLayout)inflater.inflate(R.layout.tab_two, container, false);
// RelativeLayout s = (RelativeLayout)inflater.inflate(R.layout.tab_two, container, false);
// RelativeLayout r = (RelativeLayout)s.findViewById(R.layout.text);
Bundle b = getArguments();
String ingredientsString = b.getString("ingredients");
System.out.println("string: " + ingredientsString);
String[] ingredients = ingredientsString.split(",");
System.out.println("size: " + ingredients.length);
ScrollView sv = new ScrollView(getActivity());
LinearLayout ll = new LinearLayout(getActivity());
ll.setOrientation(LinearLayout.VERTICAL);
sv.addView(ll);
for(int i = 0; i <ingredients.length; i++) {
final CheckBox cb = new CheckBox(getActivity());
cb.setText(ingredients[i]);
cb.setTag("checkbox" + i);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
buttonView.getTag();
shoppingList.add(cb.getText().toString());
System.out.println("ADDING: " + cb.getText().toString());
} else {
shoppingList.remove(cb.getText().toString());
System.out.println("REMOVING: " + cb.getText().toString());
}
}
});
ll.addView(cb);
}
Button button = new Button(getActivity());
button.setText("Add to list");
button.setPadding(0, 10, 0, 10);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String list = "";
for (int x=0; x<shoppingList.size(); x++)
list += shoppingList.get(x) + "\n";
new AlertDialog.Builder(getActivity())
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Save List")
.setMessage("Add following items to list?\n\n" + list)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("No", null)
.show();
}
});
ll.addView(button);
l.addView(sv);
return l;
// return v;
}
}
GÜNCELLEME: Ben ... Bir veritabanı sınıfı yaptık siz doğru yolda olduğumu sanıyorsun?
public class DBhelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "Ingredients_DB";
private static final int DATABASE_VERSION = 2;
private static final String TABLE_NAME = "INGREDIENTS";
public static final String Col_1 = "TITLE";
public DBhelper(Context context) {
super(context, DATABASE_NAME, null, 2);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table" + TABLE_NAME + "(TITLE STRING PRIMARY KEY AUTOINCREMENT, TITLE TEXT");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
onCreate(db);
}
public boolean insertData(String Title) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(Col_1, Title);
long result = db.insert(TABLE_NAME, null, contentValues);
if(result == -1){
return false;
}
else
return true;
}
}
Şimdiye kadar ne denediniz? –
Veritabanı sınıfımı yukarıda tuttum. Sence doğru yolda mıyım? – user3548867