Skip to content

Commit

Permalink
Merge pull request #109 from CaptainHuangsh/38-multi-city-beta
Browse files Browse the repository at this point in the history
38 multi city beta
  • Loading branch information
CaptainHuangsh authored Jun 17, 2017
2 parents ceffb55 + 4de12a1 commit ee28967
Show file tree
Hide file tree
Showing 9 changed files with 294 additions and 350 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ android {
applicationId "com.example.owen.weathergo"
minSdkVersion 15
targetSdkVersion 24
versionCode 10
versionName '1.4.01.3141dev'
versionCode 12
versionName '1.4.03.3246'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
/*jackOptions {
Expand Down
4 changes: 1 addition & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,11 @@
android:name=".activity.SettingsActivity"
android:launchMode="singleTask" />
<activity
android:name="com.example.owen.weathergo.activity.ChoiceCityActivity"
android:launchMode="singleTask"
android:name=".activity.ChoiceCityActivity"
android:theme="@style/Theme.AppCompat.Light" />
<activity android:name=".activity.Test" />
<activity
android:name=".activity.MultiCitiesManagerActivity"
android:launchMode="singleTask"
android:theme="@style/Theme.AppCompat.Light" />

<service android:name=".service.AutoUpdateService" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
package com.example.owen.weathergo.activity;

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;

import com.example.owen.weathergo.R;
import com.example.owen.weathergo.common.base.C;
import com.example.owen.weathergo.modules.adapter.CityAdapter;
import com.example.owen.weathergo.modules.domain.City;
import com.example.owen.weathergo.modules.domain.Province;
import com.example.owen.weathergo.util.DBManager;
import com.example.owen.weathergo.util.SharedPreferenceUtil;
import com.example.owen.weathergo.util.WeatherDB;
import com.example.owen.weathergo.modules.domain.City;
import com.example.owen.weathergo.modules.domain.Province;
import com.example.owen.weathergo.modules.adapter.CityAdapter;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -40,9 +43,10 @@ public class ChoiceCityActivity extends AppCompatActivity {

public static final int LEVEL_PROVINCE = 0;
public static final int LEVEL_CITY = 1;
private String what_to_do;
private String what_to_do;//从那个页面过来,多城市管理、主天气页面
private String which_city;
private int currentLevel;
// private boolean isChecked = false;


@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
Expand All @@ -60,6 +64,9 @@ protected void onStart() {
super.onStart();
Intent intent = this.getIntent();
what_to_do = intent.getStringExtra("what_to_do");
which_city = ("".equals(intent.getStringExtra("which_city"))
|| intent.getStringExtra("which_city") == null)
? C.Tag_CITY_0 : intent.getStringExtra("which_city");
}

private void init() {
Expand All @@ -83,14 +90,12 @@ public void onItemClick(View view, int pos) {
} else if (currentLevel == LEVEL_CITY) {
selectedCity = cityList.get(pos);
if ("select_multi_city".equals(what_to_do)) {
Log.d("ChoiceCityActivityhuang", " onclick " + selectedCity.getCityName());
Intent intent = new Intent();
intent.putExtra("select_multi_city", selectedCity.getCityName());
setResult(RESULT_OK, intent);
} else {
SharedPreferenceUtil.getInstance().setCityName(selectedCity.getCityName());
} else if (!"".equals(which_city)) {
updateCity();
}
// finish();
quit();
}

Expand All @@ -104,6 +109,66 @@ private void quit() {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

private void updateCity() {
Intent intent = new Intent();
intent.setClass(ChoiceCityActivity.this, WeatherMain.class);
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
final SQLiteDatabase db = DBManager.getInstance().getDatabase();
Cursor cursor = db.rawQuery("select city from MultiCities", null);
ArrayList<String> cityList = new ArrayList<>();
if (cursor.moveToFirst()) {
do {
//遍历cursor
String city = cursor.getString(cursor.getColumnIndex("city"));
cityList.add(city);
} while (cursor.moveToNext());
}
cursor.close();
ContentValues values = new ContentValues();
values.put("city", selectedCity.getCityName());
if (which_city != null)
switch (which_city) {
case C.Tag_CITY_0:
SharedPreferenceUtil.getInstance()
.setCityName(selectedCity.getCityName());
//城市0 主城市
intent.putExtra("which_page", 0);
break;
case C.Tag_CITY_1:
db.update("MultiCities", values, "city = ?", new String[]{
cityList.get(0)
});
intent.putExtra("which_page", 1);
break;
case C.Tag_CITY_2:
db.update("MultiCities", values, "city = ?", new String[]{
cityList.get(1)
});
intent.putExtra("which_page", 2);
break;
case C.Tag_CITY_3:
db.update("MultiCities", values, "city = ?", new String[]{
cityList.get(2)
});
intent.putExtra("which_page", 3);
break;
case C.Tag_CITY_4:
db.update("MultiCities", values, "city = ?", new String[]{
cityList.get(3)
});
intent.putExtra("which_page", 4);
break;
case C.Tag_CITY_5:
db.update("MultiCities", values, "city = ?", new String[]{
cityList.get(4)
});
intent.putExtra("which_page", 5);
break;
default:
}
DBManager.getInstance().closeDatabase();
startActivity(intent);
}

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void queryCities(int ProId) {
Expand All @@ -126,9 +191,7 @@ public void queryProvince() {
DBManager.getInstance().openDatabase();
provincesList.addAll(WeatherDB.loadProvinces(DBManager.getInstance().getDatabase()));
DBManager.getInstance().closeDatabase();

dataList.clear();

for (Province province : provincesList) {
dataList.add(province.getProName());
}
Expand All @@ -143,7 +206,6 @@ public void queryProvince() {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onBackPressed() {
// super.onBackPressed();
//重写onBackPressed()方法需要将super.onBackPressed()注释掉,不然无论执行什么都会默认执行这一句而退出
if (currentLevel == LEVEL_PROVINCE) {
finish();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;

import com.example.owen.weathergo.R;
Expand Down Expand Up @@ -41,7 +40,6 @@ public class MultiCitiesManagerActivity extends AppCompatActivity {
private ArrayList<String> cityList = new ArrayList<>();
private MultiCityAdapter mAdapter;
private int mCityCount;
private String mResultCity;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Expand All @@ -64,7 +62,6 @@ private void init() {
setTitle("多城市管理");
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
final SQLiteDatabase db = DBManager.getInstance().getDatabase();
// ToastUtil.showShort("" + db);
Cursor cursor = db.rawQuery("select city from MultiCities", null);
if (cursor.moveToFirst()) {
do {
Expand All @@ -75,11 +72,7 @@ private void init() {
}
cursor.close();
mCityCount = (int) DBManager.getInstance().allCaseNum("MultiCities");
// DBManager.getInstance().closeDatabase();
/*cityList.add("洛阳");
cityList.add("开封");*/
cityList.add("添加城市");
// initRecycleView();
DBManager.getInstance().closeDatabase();
}

Expand All @@ -98,7 +91,6 @@ public void onItemClick(View view, int pos) {
dialog.setSelectOnclickListener(new MultiCityAddDialog.onSelectOnclickListener() {
@Override
public void onSelectClick() {
// ToastUtil.showShort("selectCity");
Intent intent = new Intent();
intent.setClass(MultiCitiesManagerActivity.this, ChoiceCityActivity.class);
intent.putExtra("what_to_do", "select_multi_city");
Expand All @@ -117,7 +109,6 @@ public void onYesClick() {
if (!"".equals(dialog2.mCityEdit.getText().toString())) {
for (String city : cityList) {
if (city.equals(dialog2.mCityEdit.getText().toString())) {
// ToastUtil.showShort("城市已存在!");
AlertDialog.Builder dialog3 = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog3.setMessage("城市已存在😁")
Expand All @@ -135,6 +126,7 @@ public void onYesClick() {
addData = false;
}
if (addData) {
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
values.put("city", dialog2.mCityEdit.getText().toString());
final SQLiteDatabase db = DBManager.getInstance().getDatabase();
db.insert("MultiCities", null, values);
Expand All @@ -145,6 +137,7 @@ public void onYesClick() {
}
}
dialog2.dismiss();
DBManager.getInstance().closeDatabase();
}
});
dialog2.setNoOnclickListener("取消", new CityDialog.onNoOnclickListener() {
Expand All @@ -167,10 +160,7 @@ public void onNoClick() {
} else {
Intent intent = new Intent(MultiCitiesManagerActivity.this, WeatherMain.class);
intent.putExtra("city_num", pos);
Log.d("MultiCitiesManagerActivityhuang startActivity ", " pos " + pos);
startActivity(intent);
// quit();
// ToastUtil.showShort("dianjil" + cityList.get(pos));
}

}
Expand All @@ -179,7 +169,6 @@ public void onNoClick() {
@Override
public void onItemLongClick(View view, int pos) {
if (pos < mCityCount) {
// ToastUtil.showShort("shanchu" + cityList.get(pos));
toDeleteCity(cityList.get(pos));
}
}
Expand All @@ -199,31 +188,13 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
case 1:
if (resultCode == RESULT_OK) {
Boolean addData = true;
mResultCity = data.getStringExtra("select_multi_city");
Log.d("MultiCitiesManagerActivityhuang", " onActivityResult "
+ mResultCity);
String mResultCity = data.getStringExtra("select_multi_city");
if (!"".equals(mResultCity) && mResultCity != null) {
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
final ContentValues values = new ContentValues();
final SQLiteDatabase db = DBManager.getInstance().getDatabase();

/*Cursor cursor = db.rawQuery("select city from MultiCities", null);
if (cursor.moveToFirst()) {
do {
//遍历cursor
String city = cursor.getString(cursor.getColumnIndex("city"));
if (city.equals(mResultCity)) {
ToastUtil.showShort("已经选择过这个城市啦!");
addData = false;
break;
}
} while (cursor.moveToNext());
}
cursor.close();*/

for (String city : cityList) {
if (city.equals(mResultCity)) {
// ToastUtil.showShort("城市已存在!");
AlertDialog.Builder dialog3 = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog3.setMessage("城市已存在😁")
Expand Down
Loading

0 comments on commit ee28967

Please sign in to comment.