アプリケーションで else if ステートメントを使用して同じ String 属性の値を変更しようとしていますが、これまでにいくつかの問題に直面しています。今まで値を変更できませんでした。これが私のコードの重要な部分です。助言がありますか?
protected void ScheduleOp1() {
// TODO Auto-generated method stub
String VarMin = "-140 minute";
db.execSQL("DROP VIEW IF EXISTS " + view_Schedule1);
db.execSQL("CREATE VIEW " + view_Schedule1 + " " + " AS SELECT "
+ sBusDepart + "," + sBusArrival + "," + sBusDepartT + ","
+ sBusArrivalT + " FROM" + " " + fDepart + " " + "INNER JOIN" + " "
+ sBusSchedule + " " + "ON " + sBusSchedule + "." + sBusDate + "="
+ fDepart + "." + fDate + " " + "WHERE " + fDate + "= '" + fDate1
+ "'" + " " + "AND" + " " + sBusDepartT + " "
+ "= strftime('%H:%M', '" + fTime + "', '" + VarMin + "');");
Cursor cur = fetchAllTodos();
startManagingCursor(cur);
if (cur.moveToFirst()) {
Toast.makeText(
getBaseContext(),
cur.getString(0) + " " + cur.getString(1) + " "
+ cur.getString(2) + " " + cur.getString(3) + "\n",
Toast.LENGTH_LONG).show();
} else if (cur.moveToFirst() == false) {
VarMin = "-150 minute";
} else {
Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show();
}
}
皆さんが私を助けてくれることを願っています。
- 更新しました -
これがコードの更新です。私がやろうとしているのは、作成したビューで検索を実行するために、「VarMin」の値を常に変更することです。「else」ステートメントは、結果がまったく見つからない場合に使用します。
protected void ScheduleOp1() {
// TODO Auto-generated method stub
db.execSQL("DROP VIEW IF EXISTS " +view_Schedule1);
db.execSQL("CREATE VIEW " +view_Schedule1+ " " +
" AS SELECT " +sBusDepart+ "," +sBusArrival+ ","
+sBusDepartT+ "," +sBusArrivalT+ " FROM" + " "
+fDepart+ " " + "INNER JOIN" + " " +sBusSchedule+ " " +
"ON " +sBusSchedule+ "." +sBusDate+ "=" +fDepart+ "."
+fDate+ " " + "WHERE " +fDate+ "= '" +fDate1+"'"+" "+
"AND" + " " +sBusDepartT+ " " + "= strftime('%H:%M', '" +fTime+ "', '" +VarMin+"');");
Cursor cur = fetchAllTodos();
startManagingCursor (cur);
if (cur.moveToFirst()) {
Toast.makeText(getBaseContext(), cur.getString(0)+ " " +cur.getString(1)+ " "
+cur.getString(2)+ " " +cur.getString(3)+ "\n",
Toast.LENGTH_LONG).show();
}else if (cur.moveToFirst() == false){
VarMin = "-145 minute";
}
else if (cur.moveToFirst() == false){
VarMin = "-150 minute";
}
else{
Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show();
}
}
//fetching records from database
public Cursor fetchAllTodos() {
return db.query(view_Schedule1, new String [] {sBusDepart,
sBusArrival, sBusDepartT, sBusArrivalT }, null, null, null, null, null);
}
}
皆さんが私を助けてくれることを願っています。
- アップデート -
ここに完全なコードの更新があります。
package sirtat.individualProject.PublicTransportationTimeScheduler;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.TimePicker;
import android.widget.DatePicker;
import java.util.Calendar;
import java.util.Locale;
import android.database.Cursor;
public class ScheduleActivity extends Activity {
SQLiteDatabase db;
TimePicker timePicker;
DatePicker datePicker;
int hour, minute;
int yr, month, day;
static String fDate1="DepartureDate";
static String fDate2="DepartureDate";
static String fTime="DEPART_TIME";
static String fTime2="DEPART_TIME";
public static final String view_Schedule1 = "ViewSchedule1";
public static final String sBusArrival = "SBusArrivalLocation";
public static final String sBusDepart = "SBusDepartLocation";
public static final String sBusArrivalT = "SBusArrivalTime";
public static final String sBusDepartT = "SBusDepartTime";
public static final String fDepart = "FlightDeparture";
public static final String sBusSchedule = "SkyBusSchedule";
public static final String sBusDate = "SkyBusDate";
public static final String fDate = "FlightDate";
private int Min=140;
private String getVarMin(){
return "-"+Min+" " + "minute";
}
//private String VarMin = "";
/** Called when the activity is first created */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.schedule_layout);
db = openOrCreateDatabase("PublicTransport2" , SQLiteDatabase.CREATE_IF_NECESSARY, null);
db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
Calendar today = Calendar.getInstance();
//--GET THE CURRENT DATE--
yr= today.get(Calendar.YEAR);
month = today.get(Calendar.MONTH);
day = today.get(Calendar.DAY_OF_MONTH);
//--GET THE CURRENT TIME--
hour = today.get(Calendar.HOUR);
minute = today.get(Calendar.MINUTE);
timePicker = (TimePicker) findViewById(R.id.timePicker);
datePicker = (DatePicker) findViewById(R.id.datePicker);
//--Button view--
Button btnOp1 = (Button) findViewById(R.id.btnOption1);
btnOp1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int year1 = datePicker.getYear();
int mnth1 = datePicker.getMonth() + 1;
int dy1 = datePicker.getDayOfMonth();
int hr1 = timePicker.getCurrentHour();
int min1 = timePicker.getCurrentMinute();
fDate1 = (pad(year1)) + ("-") + (pad(mnth1))
+ ("-") + (pad(dy1));
fTime = (pad(hr1)) + (":") + (pad(min1));
ScheduleOp1();
}
private Object pad(int b) {
// TODO Auto-generated method stub
if (b >= 10){
return String.valueOf(b);
}else{
return "0" + String.valueOf(b);
}
}
});
Button btnOp2 = (Button) findViewById(R.id.btnScheduleOption2);
btnOp2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int year2 = datePicker.getYear();
int mnth2 = datePicker.getMonth() + 1;
int dy2 = datePicker.getDayOfMonth();
int hr2 = timePicker.getCurrentHour();
int min2 = timePicker.getCurrentMinute();
fDate2 = (pad2(year2)) + ("-") + (pad2(mnth2))
+ ("-") + (pad2(dy2));
fTime2 = (pad2(hr2)) + (":") + (pad2(min2));
ScheduleOp2();
}
private Object pad2(int c) {
// TODO Auto-generated method stub
if (c >= 10){
return String.valueOf(c);
}else{
return "0" + String.valueOf(c);
}
}
});
}
protected void ScheduleOp1() {
// TODO Auto-generated method stub
Cursor cur = null;
boolean mustCont = true;
while (mustCont){
db.execSQL("DROP VIEW IF EXISTS " +view_Schedule1);
db.execSQL("CREATE VIEW " +view_Schedule1+ " " +
" AS SELECT " +sBusDepart+ "," +sBusArrival+ ","
+sBusDepartT+ "," +sBusArrivalT+ " FROM" + " "
+fDepart+ " " + "INNER JOIN" + " " +sBusSchedule+ " " +
"ON " +sBusSchedule+ "." +sBusDate+ "=" +fDepart+ "."
+fDate+ " " + "WHERE " +fDate+ "= '" +fDate1+"'"+" "+
"AND" + " " +sBusDepartT+ " " + "= strftime('%H:%M', '" +fTime+ "', '" +getVarMin()+"');");
cur = fetchAllTodos();
if (cur.getCount() == 0){
switch (Min){
case 140 :
Min = 145;
break;
case 145 :
Min = 150;
break;
case 150 :
Min = 155;
break;
case 155 :
Min = 180;
break;
case 200 :
mustCont = false;
break;
}
}else{
mustCont = false;
}
}
if(cur != null && cur.getCount()>0){
cur.moveToFirst();
Toast.makeText(getBaseContext(), cur.getString(0)+ " " +cur.getString(1)+ " "
+cur.getString(2)+ " " +cur.getString(3)+ "\n",
Toast.LENGTH_LONG).show();
}else {
Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show();
}
}
protected void ScheduleOp2(){
Toast.makeText(getBaseContext(), "Date selected:"
+ fDate2 + "\n" +
"Time Selected:" + fTime2,
Toast.LENGTH_LONG).show();
}
//fetching records from database
public Cursor fetchAllTodos() {
return db.query(view_Schedule1, new String [] {sBusDepart,
sBusArrival, sBusDepartT, sBusArrivalT }, null, null, null, null, null);
}
}
そして、これがコードの重要な部分の更新です
protected void ScheduleOp1() {
// TODO Auto-generated method stub
Cursor cur = null;
boolean mustCont = true;
while (mustCont){
db.execSQL("DROP VIEW IF EXISTS " +view_Schedule1);
db.execSQL("CREATE VIEW " +view_Schedule1+ " " +
" AS SELECT " +sBusDepart+ "," +sBusArrival+ ","
+sBusDepartT+ "," +sBusArrivalT+ " FROM" + " "
+fDepart+ " " + "INNER JOIN" + " " +sBusSchedule+ " " +
"ON " +sBusSchedule+ "." +sBusDate+ "=" +fDepart+ "."
+fDate+ " " + "WHERE " +fDate+ "= '" +fDate1+"'"+" "+
"AND" + " " +sBusDepartT+ " " + "= strftime('%H:%M', '" +fTime+ "', '" +getVarMin()+"');");
cur = fetchAllTodos();
if (cur.getCount() == 0){
switch (Min){
case 140 :
Min = 145;
break;
case 145 :
Min = 150;
break;
case 150 :
Min = 155;
break;
case 155 :
Min = 180;
break;
case 200 :
mustCont = false;
break;
}
}else{
mustCont = false;
}
}
if(cur != null && cur.getCount()>0){
cur.moveToFirst();
Toast.makeText(getBaseContext(), cur.getString(0)+ " " +cur.getString(1)+ " "
+cur.getString(2)+ " " +cur.getString(3)+ "\n",
Toast.LENGTH_LONG).show();
}else {
Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show();
}
}
皆さんが私を助けてくれることを願っています。どうも