내 MainActivity.java 코드 :커서 데이터 (DbHandler.java)를 listview (MainActicity.java)에 추가하는 방법은 무엇입니까?
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener{
Spinner spinner1;
TextView textView;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) { //ThisIsWorkingAsExpected(SoDontChange)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner1 = (Spinner) findViewById(R.id.spinner1);
textView = (TextView) findViewById(R.id.textview);
listView = (ListView) findViewById(R.id.listview);
spinner1.setOnItemSelectedListener(this);
loadSpinnerData();
}
public void loadSpinnerData() { //ThisIsWorkingAsExpected(SoDontChange)
DbHandler db = new DbHandler(getApplicationContext());
List<String> BusNoList = db.getBusNoType();
ArrayAdapter<String> SpinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, BusNoList); SpinnerAdapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
spinner1.setAdapter(SpinnerAdapter);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
DbHandler db = new DbHandler(getApplicationContext());
List<String> BusRouteList = db.getBusRoute();
ArrayAdapter<String> lvAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, BusRouteList);
listView.setAdapter(lvAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
내 DbHandler.java 코드 :
public class DbHandler extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 9;
private static final String DATABASE_NAME = "TravelMadurai";
private static final String TAG = "DbHandler";
public DbHandler(Context context)
{
super(context, DATABASE_NAME, null , DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) //TABLES NOT CREATINIG IF DATABASE IS ALREADY THERE
{
try
{
db.execSQL("CREATE TABLE IF NOT EXISTS MDUBusRoutes(ID INTEGER PRIMARY KEY,Bus_No_Type TEXT,From_Loc TEXT,To_Loc TEXT,Route_1 TEXT,Route_2 TEXT,Route_3 TEXT,Route_4 TEXT,Route_5 TEXT,Route_6 TEXT,Route_7 TEXT,Route_8 TEXT,Route_9 TEXT,Route_10 TEXT,Route_11 TEXT,Route_12 TEXT,Route_13 TEXT,Route_14 TEXT,Route_15 TEXT,Total_Stops INTEGER)");
db.execSQL("INSERT INTO MDUBusRoutes(Bus_No_Type,From_Loc,To_Loc,Route_1,Route_2,Route_3,Route_4,Route_5,Route_6,Route_7,Route_8,Route_9,Route_10,Route_11,Route_12,Route_13,Route_14,Route_15,Total_Stops)VALUES('C5','c5route1','c5route2','c5route3','c5route4','c5route5','c5route6','c5route7','c5route8','c5route9','c5route10','c5route11','c5route12','c5route13','c5route14','c5route15','c5route16','c5route17',15)");
db.execSQL("INSERT INTO MDUBusRoutes(Bus_No_Type,From_Loc,To_Loc,Route_1,Route_2,Route_3,Route_4,Route_5,Route_6,Route_7,Route_8,Route_9,Route_10,Route_11,Route_12,Route_13,Route_14,Route_15,Total_Stops)VALUES('A5','a5Route1','a5Route2','a5Route3','a5Route4','a5Route5','a5Route6','a5Route7','a5Route8','a5Route9','a5Route10','a5Route11','a5Route12','a5Route13','a5Route14','a5Route15','a5Route16','a5Route17',15)");
db.execSQL("INSERT INTO MDUBusRoutes(Bus_No_Type,From_Loc,To_Loc,Route_1,Route_2,Route_3,Route_4,Route_5,Route_6,Route_7,Route_8,Route_9,Route_10,Route_11,Route_12,Route_13,Route_14,Route_15,Total_Stops)VALUES('B7','b7Route1','b7Route2','b7Route3','b7Route4','b7Route5','b7Route6','b7Route7','b7Route8','b7Route9','b7Route10','b7Route11','b7Route12','b7Route13','b7Route14','b7Route15','b7Route16','b7Route17',15)");
}
catch (Exception e){
Log.d(TAG,"ErrorCreatingTable" + e);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS MDUBusRoutes");
onCreate(db);
}
public List<String> getBusNoType() //ThisIsWorkingAsExpected(SoDontChange)
{
List<String> BusNoList = new ArrayList<String>();
try {
String SelectBusNo = "SELECT * FROM MDUBusRoutes ORDER BY Bus_No_Type ASC" ;
SQLiteDatabase db = this.getWritableDatabase();
Cursor CursorBusNo = db.rawQuery(SelectBusNo, null);
if (CursorBusNo.moveToFirst())
{
do {
BusNoList.add(CursorBusNo.getString(1));
}
while (CursorBusNo.moveToNext());
}
CursorBusNo.close();
db.close();
}
catch (Exception ignored){
Log.d(TAG,"Error:..........................................................................." + ignored);
}
return BusNoList;
}
public List<String> getBusRoute() //ThisIsWorkingAsExpected(SoDontChange)
{
List<String> BusRouteList = new ArrayList<String>();
try {
String SelectBusRoute = "SELECT * FROM MDUBusRoutes" ;
SQLiteDatabase db = this.getWritableDatabase();
Cursor CursorBusRoute = db.rawQuery(SelectBusRoute, null);
if (CursorBusRoute.moveToFirst()) {
do {
BusRouteList.add(CursorBusRoute.getString(2));
}
while (CursorBusRoute.moveToNext());
}
CursorBusRoute.close();
db.close();
}
catch (Exception ignored){
}
return BusRouteList;
}
}
내 출력은 다음과 같습니다
회 전자 항목 :
내 출력이 테이블의 모든 행의 세 번째 열을 표시하지만 나는 테이블에 열을 추가 할. 내가 회에 anothor 항목을 선택하면 Bus_No_Type =이 (spinneritemselected) 여기서, 목록보기는
For example:
If I select B7 from spinner then listview should display values from b7Route1 to b7Route17. Which is already added in table.
나는 안드로이드에 새로운 오전 열을 표시해야한다. 제발 도와주세요. 오랫동안 이것을 시도하고 있습니다.
고마워요!
는 ListView를 이전 선택의 표시 결과를 계속하거나해야 분명히해야 기존의 선택 첫번째 b7Route17에 b7Route1의 값을 표시하기 전에? – 0X0nosugar
예, 먼저 오래된 섹션을 지우고 b7Route1 ~ b7Route17을 표시해야합니다. @ 0X0nosugar – vinayak