Skip to content

Commit

Permalink
Merge pull request #105 from CaptainHuangsh/37-multi-city-2
Browse files Browse the repository at this point in the history
37 multi city 2
  • Loading branch information
CaptainHuangsh authored Jun 12, 2017
2 parents d310eb8 + 5bf0675 commit ceffb55
Show file tree
Hide file tree
Showing 6 changed files with 245 additions and 25 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ android {
minSdkVersion 15
targetSdkVersion 24
versionCode 10
versionName '1.3.01.3130'
versionName '1.4.01.3141dev'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
/*jackOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
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 @@ -39,6 +40,7 @@ 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 int currentLevel;
// private boolean isChecked = false;

Expand All @@ -53,6 +55,13 @@ protected void onCreate(Bundle savedInstanceState) {
queryProvince();
}

@Override
protected void onStart() {
super.onStart();
Intent intent = this.getIntent();
what_to_do = intent.getStringExtra("what_to_do");
}

private void init() {
setTitle("选择城市");
currentLevel = 0;
Expand All @@ -73,7 +82,14 @@ public void onItemClick(View view, int pos) {
queryCities(selectedProvince.getProSort());
} else if (currentLevel == LEVEL_CITY) {
selectedCity = cityList.get(pos);
SharedPreferenceUtil.getInstance().setCityName(selectedCity.getCityName());
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());
}
// finish();
quit();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import com.example.owen.weathergo.dialog.MultiCityAddDialog;
import com.example.owen.weathergo.modules.adapter.MultiCityAdapter;
import com.example.owen.weathergo.util.DBManager;
import com.example.owen.weathergo.util.ToastUtil;
import com.example.owen.weathergo.util.SharedPreferenceUtil;

import java.util.ArrayList;

Expand All @@ -33,16 +33,15 @@

public class MultiCitiesManagerActivity extends AppCompatActivity {

//TODO 修改数据库中id不自增,随总数改变id
//TODO 验证输入的城市是否可用
//TODO 从多城市管理更改后返回WeatherMain做出对应变化、
//TODO selectCity跳转到城市选择界面并返回得到的值

@BindView(R.id.city_recycle)
RecyclerView mCityRecycle;

private ArrayList<String> cityList = new ArrayList<>();
private MultiCityAdapter mAdapter;
private int mCityCount;
private String mResultCity;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Expand All @@ -53,6 +52,14 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
initRecycleView();
}

@Override
protected void onStart() {
super.onStart();
Intent intent = new Intent();
intent.putExtra("what_activity_from", "MultiCitiesManagerActivity");
setResult(RESULT_OK, intent);
}

private void init() {
setTitle("多城市管理");
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
Expand All @@ -73,6 +80,7 @@ private void init() {
cityList.add("开封");*/
cityList.add("添加城市");
// initRecycleView();
DBManager.getInstance().closeDatabase();
}

private void initRecycleView() {
Expand All @@ -90,7 +98,12 @@ public void onItemClick(View view, int pos) {
dialog.setSelectOnclickListener(new MultiCityAddDialog.onSelectOnclickListener() {
@Override
public void onSelectClick() {
ToastUtil.showShort("selectCity");
// ToastUtil.showShort("selectCity");
Intent intent = new Intent();
intent.setClass(MultiCitiesManagerActivity.this, ChoiceCityActivity.class);
intent.putExtra("what_to_do", "select_multi_city");
startActivityForResult(intent, 1);
dialog.dismiss();
}
});
dialog.setInputOnclickListener(new MultiCityAddDialog.onInputOnclickListener() {
Expand All @@ -100,14 +113,36 @@ public void onInputClick() {
dialog2.setYesOnclickListener("确定", new CityDialog.onYesOnclickListener() {
@Override
public void onYesClick() {
Boolean addData = true;
if (!"".equals(dialog2.mCityEdit.getText().toString())) {
values.put("city", dialog2.mCityEdit.getText().toString());
final SQLiteDatabase db = DBManager.getInstance().getDatabase();
db.insert("MultiCities", null, values);
values.clear();
cityList.clear();
init();
mAdapter.notifyDataSetChanged();
for (String city : cityList) {
if (city.equals(dialog2.mCityEdit.getText().toString())) {
// ToastUtil.showShort("城市已存在!");
AlertDialog.Builder dialog3 = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog3.setMessage("城市已存在😁")
.show();
addData = false;
break;
}
}
if (SharedPreferenceUtil.getInstance().getCityName()
.equals(dialog2.mCityEdit.getText().toString())) {//是否和主城市冲突
AlertDialog.Builder dialog3 = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog3.setMessage("城市已存在😁")
.show();
addData = false;
}
if (addData) {
values.put("city", dialog2.mCityEdit.getText().toString());
final SQLiteDatabase db = DBManager.getInstance().getDatabase();
db.insert("MultiCities", null, values);
values.clear();
cityList.clear();
init();
mAdapter.notifyDataSetChanged();
}
}
dialog2.dismiss();
}
Expand All @@ -132,7 +167,7 @@ public void onNoClick() {
} else {
Intent intent = new Intent(MultiCitiesManagerActivity.this, WeatherMain.class);
intent.putExtra("city_num", pos);
Log.d("MultiCitiesManagerActivityhuang startActivity "," pos "+pos);
Log.d("MultiCitiesManagerActivityhuang startActivity ", " pos " + pos);
startActivity(intent);
// quit();
// ToastUtil.showShort("dianjil" + cityList.get(pos));
Expand All @@ -151,6 +186,75 @@ public void onItemLongClick(View view, int pos) {
});
}

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
Boolean addData = true;
mResultCity = data.getStringExtra("select_multi_city");
Log.d("MultiCitiesManagerActivityhuang", " onActivityResult "
+ mResultCity);
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("城市已存在😁")
.show();
addData = false;
break;
}
}
if (SharedPreferenceUtil.getInstance().getCityName()
.equals(mResultCity)) {//是否和主城市冲突
AlertDialog.Builder dialog3 = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog3.setMessage("城市已存在😁")
.show();
addData = false;
}
if (addData) {
values.put("city", mResultCity);
db.insert("MultiCities", null, values);
}
DBManager.getInstance().closeDatabase();
values.clear();
}
cityList.clear();
init();
mAdapter.notifyDataSetChanged();
}
default:
break;
}
}

@Override
protected void onDestroy() {
Expand All @@ -159,6 +263,7 @@ protected void onDestroy() {
}

private void toDeleteCity(final String cityStr) {
DBManager.getInstance().openDatabase(DBManager.WEATHER_DB_NAME);
AlertDialog.Builder dialog = new AlertDialog.Builder(
MultiCitiesManagerActivity.this);
dialog.setTitle("提示信息")
Expand All @@ -167,7 +272,6 @@ private void toDeleteCity(final String cityStr) {
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

final SQLiteDatabase db = DBManager.getInstance().getDatabase();
db.delete("MultiCities", "city = ?", new String[]{
cityStr
Expand Down
Loading

0 comments on commit ceffb55

Please sign in to comment.