안드로이드 개발 질문/답변
(글 수 45,052)
소스 일부분입니다.
for문으로 c1을 차례차례로 탐색하면서
리스트뷰로 전달받은 변수와 DB에 있는 테이블의 내용과
비교해서 값을 처리하는 과정인데...
저 if안의 내용이 전부 true가 나버려서
DB에 모두 쓰게 되더라구요....
소스는 혹시 몰라서 압축해서 올렸는데...
도움좀받을수있을까요
---------------------------------------------
Cursor c1 = db.rawQuery(update, null);
String sql = null;
c1.moveToFirst();
if(btn_chk == 0){
sql = "UPDATE car_table SET chk = 1";
}
if(btn_chk == 1){
sql = "UPDATE car_table SET chk = 0";
}
for(int i=0; i<c1.getCount(); i++){
if(c1.getString(3).equals(arSrc.get(position).car_num)){
db.execSQL(sql);
}
c1.moveToNext();
}
String sql = null;
c1.moveToFirst();
if(btn_chk == 0){
sql = "UPDATE car_table SET chk = 1";
}
if(btn_chk == 1){
sql = "UPDATE car_table SET chk = 0";
}
for(int i=0; i<c1.getCount(); i++){
if(c1.getString(3).equals(arSrc.get(position).car_num)){
db.execSQL(sql);
}
c1.moveToNext();
}
----------------소스전문-------------
package com.api;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class NormalActivity extends Activity {
ArrayList arItem;
ArrayList<MyItem> arSrc2;
private SQLiteOpenHelper mOpenHelper;
private SQLiteDatabase db;
private DatabaseHelper dbHelper;
private static final String MY_CARDB_NAME = "car.db";
private static final String MY_CARDB_TABLE = "car_table";
private static final int MY_CARDB_VERSION = 2;
ArrayList arItem;
ArrayList<MyItem> arSrc2;
private SQLiteOpenHelper mOpenHelper;
private SQLiteDatabase db;
private DatabaseHelper dbHelper;
private static final String MY_CARDB_NAME = "car.db";
private static final String MY_CARDB_TABLE = "car_table";
private static final int MY_CARDB_VERSION = 2;
private class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper(Context context) {
super(context, MY_CARDB_NAME , null,MY_CARDB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try{
db.execSQL("CREATE TABLE " + MY_CARDB_TABLE + "(" +
"_id INTEGER PRIMARY KEY autoincrement ," +
"no_car INT, " +
"chk INT, " +
"name VARCHAR(20), " +
"car_num VARCHAR(10) );" );
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
db.execSQL("DROP TABLE IF EXISTS " + MY_CARDB_TABLE);
onCreate(db);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
public void onCreate(SQLiteDatabase db) {
try{
db.execSQL("CREATE TABLE " + MY_CARDB_TABLE + "(" +
"_id INTEGER PRIMARY KEY autoincrement ," +
"no_car INT, " +
"chk INT, " +
"name VARCHAR(20), " +
"car_num VARCHAR(10) );" );
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
db.execSQL("DROP TABLE IF EXISTS " + MY_CARDB_TABLE);
onCreate(db);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_normal);
dbHelper = new DatabaseHelper(this);
db = dbHelper.getWritableDatabase();
String update = "select no_car, chk, name, car_num " + " from " + MY_CARDB_TABLE;
Cursor c1 = db.rawQuery(update, null);
int recordCount = c1.getCount();
Intent add_car = new Intent(NormalActivity.this, AddCarActivity.class);
Button btn_add = (Button)findViewById(R.id.car_add);
btn_add.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent add_car = new Intent(NormalActivity.this, AddCarActivity.class);
startActivity(add_car);
}
});
Intent i = getIntent();
String carnumber = i.getStringExtra("car_num");
arItem = new ArrayList<MyItem>();
MyItem mi;
for ( int a = 0 ; a < recordCount ; a++){
c1.moveToNext();
int no = c1.getInt(0);
int chk = c1.getInt(1);
String model = c1.getString(2);
String car_num = c1.getString(3);
setContentView(R.layout.activity_normal);
dbHelper = new DatabaseHelper(this);
db = dbHelper.getWritableDatabase();
String update = "select no_car, chk, name, car_num " + " from " + MY_CARDB_TABLE;
Cursor c1 = db.rawQuery(update, null);
int recordCount = c1.getCount();
Intent add_car = new Intent(NormalActivity.this, AddCarActivity.class);
Button btn_add = (Button)findViewById(R.id.car_add);
btn_add.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent add_car = new Intent(NormalActivity.this, AddCarActivity.class);
startActivity(add_car);
}
});
Intent i = getIntent();
String carnumber = i.getStringExtra("car_num");
arItem = new ArrayList<MyItem>();
MyItem mi;
for ( int a = 0 ; a < recordCount ; a++){
c1.moveToNext();
int no = c1.getInt(0);
int chk = c1.getInt(1);
String model = c1.getString(2);
String car_num = c1.getString(3);
if(model.equals("K5")){
mi = new MyItem(no,R.drawable.k5, "K5", car_num, chk);
arItem.add(mi);
}
if(model.equals("YF SONATA")){
mi = new MyItem(no, R.drawable.yf, "YF SONATA", car_num, chk);
arItem.add(mi);
}
if(model.equals("MALIBU")){
mi = new MyItem(no, R.drawable.malibu, "MALIBU", car_num, chk);
arItem.add(mi);
}
if(model.equals("MORNING")){
mi = new MyItem(no, R.drawable.morning, "MORNING", car_num, chk);
arItem.add(mi);
}
if(model.equals("SPARK")){
mi = new MyItem(no, R.drawable.spark, "SPARK", car_num, chk);
arItem.add(mi);
}
if(model.equals("STAREX")){
mi = new MyItem(no, R.drawable.starex, "STAREX", car_num, chk);
arItem.add(mi);
}
}
MyListAdapter MyAdapter = new MyListAdapter(this, R.layout.item, arItem);
//R.layout.item 아답터에 어떤 레이아웃을 적용할꺼냐
mi = new MyItem(no,R.drawable.k5, "K5", car_num, chk);
arItem.add(mi);
}
if(model.equals("YF SONATA")){
mi = new MyItem(no, R.drawable.yf, "YF SONATA", car_num, chk);
arItem.add(mi);
}
if(model.equals("MALIBU")){
mi = new MyItem(no, R.drawable.malibu, "MALIBU", car_num, chk);
arItem.add(mi);
}
if(model.equals("MORNING")){
mi = new MyItem(no, R.drawable.morning, "MORNING", car_num, chk);
arItem.add(mi);
}
if(model.equals("SPARK")){
mi = new MyItem(no, R.drawable.spark, "SPARK", car_num, chk);
arItem.add(mi);
}
if(model.equals("STAREX")){
mi = new MyItem(no, R.drawable.starex, "STAREX", car_num, chk);
arItem.add(mi);
}
}
MyListAdapter MyAdapter = new MyListAdapter(this, R.layout.item, arItem);
//R.layout.item 아답터에 어떤 레이아웃을 적용할꺼냐
ListView myList;
myList = (ListView)findViewById(R.id.list);
myList.setAdapter(MyAdapter);
c1.close();
}
myList = (ListView)findViewById(R.id.list);
myList.setAdapter(MyAdapter);
c1.close();
}
class MyItem{
int no;
int icon;
String name;
String car_num;
int check;
public MyItem(int aNo, int aIcon, String aName, String aCar_num, int aCheck){
no = aNo;
icon = aIcon;
name = aName;
car_num = aCar_num;
check = aCheck;
}
}
int no;
int icon;
String name;
String car_num;
int check;
public MyItem(int aNo, int aIcon, String aName, String aCar_num, int aCheck){
no = aNo;
icon = aIcon;
name = aName;
car_num = aCar_num;
check = aCheck;
}
}
class MyListAdapter extends BaseAdapter{
Context ctx;
LayoutInflater Inflater;
ArrayList<MyItem> arSrc;
private int btn_chk;
private int num;
int layout; // 작은 뷰에 대한 layout
public MyListAdapter
(Context context, int alayout, ArrayList<MyItem> aarSrc){
ctx = context;
Inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
Context ctx;
LayoutInflater Inflater;
ArrayList<MyItem> arSrc;
private int btn_chk;
private int num;
int layout; // 작은 뷰에 대한 layout
public MyListAdapter
(Context context, int alayout, ArrayList<MyItem> aarSrc){
ctx = context;
Inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
arSrc = aarSrc;
layout = alayout;
}
layout = alayout;
}
@Override
public int getCount() {
return arSrc.size();
}
public int getCount() {
return arSrc.size();
}
@Override
public Object getItem(int position) {
return arSrc.get(position).name;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
public Object getItem(int position) {
return arSrc.get(position).name;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = Inflater.inflate(layout, parent, false);
//Inflater.inflate
//(int resource, ViewGroup root, boolean attachToRoot)
}
ImageView img = (ImageView)convertView.findViewById(R.id.img);
img.setImageResource(arSrc.get(position).icon);
convertView = Inflater.inflate(layout, parent, false);
//Inflater.inflate
//(int resource, ViewGroup root, boolean attachToRoot)
}
ImageView img = (ImageView)convertView.findViewById(R.id.img);
img.setImageResource(arSrc.get(position).icon);
TextView txt = (TextView)convertView.findViewById(R.id.text);
TextView txt2 = (TextView)convertView.findViewById(R.id.text2);
TextView txt2 = (TextView)convertView.findViewById(R.id.text2);
txt.setText(arSrc.get(position).name );
txt2.setText(arSrc.get(position).car_num);
final Button btn = (Button)convertView.findViewById(R.id.btn);
if(arSrc.get(position).check == 0){
btn_chk = 0;
}else{
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
}
txt2.setText(arSrc.get(position).car_num);
final Button btn = (Button)convertView.findViewById(R.id.btn);
if(arSrc.get(position).check == 0){
btn_chk = 0;
}else{
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
}
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
String update = "select no_car, chk, name, car_num " + " from " + MY_CARDB_TABLE;
Cursor c1 = db.rawQuery(update, null);
String sql = null;
c1.moveToFirst();
if(btn_chk == 0){
sql = "UPDATE car_table SET chk = 1";
}
if(btn_chk == 1){
sql = "UPDATE car_table SET chk = 0";
}
for(int i=0; i<c1.getCount(); i++){
if(c1.getString(3).equals(arSrc.get(position).car_num)){
db.execSQL(sql);
}
c1.moveToNext();
}
if(btn_chk==0)
{
final String str = arSrc.get(position).name;
{
final String str = arSrc.get(position).name;
if(str.equals("k5")){
new AlertDialog.Builder(ctx).setTitle("KIA K5").setMessage("<KIA K5> / <5 People> / <80000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}).show();
}
if(str.equals("YF SONATA")){
new AlertDialog.Builder(ctx).setTitle("HYUNDAI YF SONATA").setMessage("<KIA K5> / <5 People> / <80000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
if(str.equals("YF SONATA")){
new AlertDialog.Builder(ctx).setTitle("HYUNDAI YF SONATA").setMessage("<KIA K5> / <5 People> / <80000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}).show();
}
if(str.equals("MALIBU")){
new AlertDialog.Builder(ctx).setTitle("CHEVROLET MALIBU").setMessage("<CHEVROLET MALIBU> / <5 People> / <100000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
if(str.equals("MALIBU")){
new AlertDialog.Builder(ctx).setTitle("CHEVROLET MALIBU").setMessage("<CHEVROLET MALIBU> / <5 People> / <100000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
if(str.equals("MORNING")){
new AlertDialog.Builder(ctx).setTitle("KIA MORNING").setMessage("<KIA MORNING> / <5 People> / <50000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
}).show();
}
if(str.equals("MORNING")){
new AlertDialog.Builder(ctx).setTitle("KIA MORNING").setMessage("<KIA MORNING> / <5 People> / <50000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
if(str.equals("STAREX")){
new AlertDialog.Builder(ctx).setTitle("HYUNDAI STAREX").setMessage("<HYUNDAI STAREX> / <12 People> / <150000W / day> / <Diesel>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
if(str.equals("STAREX")){
new AlertDialog.Builder(ctx).setTitle("HYUNDAI STAREX").setMessage("<HYUNDAI STAREX> / <12 People> / <150000W / day> / <Diesel>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
if(str.equals("SPARK")){
new AlertDialog.Builder(ctx).setTitle("CHEVROLET SPARK").setMessage("<CHEVROLET SPARK> / <5 People> / <50000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
}).show();
}
if(str.equals("SPARK")){
new AlertDialog.Builder(ctx).setTitle("CHEVROLET SPARK").setMessage("<CHEVROLET SPARK> / <5 People> / <50000W / day> / <Gasoline>")
.setNeutralButton("RENT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
else
{
final String str = arSrc.get(position).name;
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 1;
btn.setText("OFF");
btn.setBackgroundColor(Color.RED);
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
else
{
final String str = arSrc.get(position).name;
new AlertDialog.Builder(ctx).setTitle("RETURN").setMessage("Return?")
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 0;
btn.setText("ON");
btn.setBackgroundColor(Color.parseColor("#FFFFFF"));
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btn_chk = 0;
btn.setText("ON");
btn.setBackgroundColor(Color.parseColor("#FFFFFF"));
Toast.makeText(ctx, str, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
});
return convertView;
}
}
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
});
return convertView;
}
}
}




btn을 ..전역에서 선언하시지마시고 ..겟뷰안에서 선언해보세요