免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
刻骨銘心的startActivityForResult三級(jí)跳獲得第三個(gè)Activity中返回的數(shù)據(jù)

刻骨銘心的startActivityForResult三級(jí)跳獲得第三個(gè)Activity中返回的數(shù)據(jù)

本文是為了記錄開(kāi)發(fā)過(guò)程中個(gè)人遇到的問(wèn)題:

      通過(guò)在第一個(gè)FirstActivity點(diǎn)擊一個(gè)按鈕用startActivityForResult啟動(dòng)第二個(gè)ProvincesActivity;顯示的是一系列省份選擇ListView,然后點(diǎn)擊選擇一個(gè)省份通過(guò)startActivityForResult啟動(dòng)第三個(gè)CityActivity,顯示的是一系列之前所選省份下的城市;再通過(guò)選擇其中一個(gè)城市返回給第一個(gè)FirstActivity!

 

public class FirstActivity extends Activity implements OnClickListener {
public final static int REQUEST_EVENT_CITY = 2;
public final static int REQUEST_EVENT_PROVINCES = 1;
public static final String ACTION_CHOOSE_CITY = "com.demo.CityActivity";
public static final String EXTRA_CHOOSE_CITY = "City";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
ProvincesActivity.actionFilterDataLaunch(this);//這是調(diào)用startActivityForResult方法
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {//在這里接收返回最后最后所選擇的城市
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
String City = bundle
.getString(EXTRA_CHOOSE_CITY);
Log.i("Your choose city are", "*******************:" + City);
}
Log.i("TAG","***********************************" + data);
}
}

 

      其中要注意的是在第二個(gè)ProvincesActivity中

 

public class ProvincesActivity extends Activity implements OnClickListener,
OnItemClickListener {

private String file1 = "province.xml"; // 文件名字
private LayoutInflater mInflater = null;
private TextView titleView;
private Button backButton;
private Button optionButton;
private ListView lvProvinces;
private ArrayList<String> mProviencesData = null;
private ProvincesAdapter adapter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.provinces_view);
initlayout();
}

public static void actionFilterDataLaunch(Context context) {
Intent i = new Intent(context, ProvincesActivity.class);
((Activity) context).startActivityForResult(i,
FirstActivity.REQUEST_EVENT_PROVINCES);
}

public void initlayout() {
mInflater = (LayoutInflater) this
.getSystemService(LAYOUT_INFLATER_SERVICE);
titleView = (TextView) findViewById(R.id.common_title_text);
backButton = (Button) findViewById(R.id.common_title_back);
optionButton = (Button) findViewById(R.id.common_title_option);
optionButton.setVisibility(View.INVISIBLE);
backButton.setOnClickListener(this);
titleView.setText("選擇城市");
addDataToUI();
lvProvinces = (ListView) this.findViewById(R.id.lv_provinces);
adapter = new ProvincesAdapter();
lvProvinces.setAdapter(adapter); //設(shè)置適配器
lvProvinces.setOnItemClickListener(this); //設(shè)置Item響應(yīng)監(jiān)聽(tīng)
}
public void addDataToUI() {
mProviencesData =Util.parseXML(Util.getFromAsset(file1, this));//這是通過(guò)讀取assets文件夾下得xml文件,再解析賦給ListView中的數(shù)組
}

@Override
public void onClick(View v) {
if (v.getId() == R.id.common_title_back) {
finish();
}
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position >= 0) {
String Province = mProviencesData.get(position);
if (mProviencesData != null && mProviencesData.size() > 0) {
CityActivity.actionLaunch(this,Province);
//finish();    特別注意不能在此finish這個(gè)ProvincesActivity (否則就等于切斷了跳轉(zhuǎn)的筋脈)
}
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (resultCode == RESULT_OK){
Bundle b = data.getExtras();
String city = b.getString(FirstActivity.EXTRA_CHOOSE_CITY);
Log.i("TAG", "*******************************"+city);
this.setResult(RESULT_OK, data);     //就是在這里把返回所選擇的城市setResult給FirstActivity
}
super.onActivityResult(requestCode, resultCode, data);
finish();   //finish應(yīng)該寫(xiě)到這個(gè)地方
}

class ProvincesAdapter extends BaseAdapter {
@Override
public int getCount() {
if (mProviencesData == null || mProviencesData.size() == 0) {
return 0;
} else {
return mProviencesData.size();
}
}
@Override
public Object getItem(int position) {
return mProviencesData.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (mProviencesData == null || mProviencesData.size() == 0) {
return null;
}
String cityName = mProviencesData.get(position);
convertView = mInflater.inflate(R.layout.change_city_item_view,
parent, false);
ViewHolder holder = new ViewHolder();
holder.tvCityName = (TextView) convertView
.findViewById(R.id.tv_name);
holder.tvCityName.setText(cityName);
return convertView;
}
}

class ViewHolder {
private TextView tvCityName;
}
}

這是最后要選擇的城市列表

public class CityActivity extends Activity implements OnClickListener,
OnItemClickListener {
// private final static String ACTION_CHOOSE_CITY = "com.demo.CityActivity.city";
private final static String EXTRA_PROVINCE = "Province";
private LayoutInflater mInflater = null;
private TextView titleView;
private Button backButton;
private Button optionButton;
private ListView lvProvinces;
private ArrayList<String> mCitiesData = null;
private CitiesAdapter adapter = null;
private String file2 = "province_city.xml";
private String parentArea = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.provinces_view);
initlayout();
}

public static void actionLaunch(Context context,String parent) {//跳到選擇城市的ListView
Intent i = new Intent(context, CityActivity.class);
i.setAction(FirstActivity.ACTION_CHOOSE_CITY);
i.putExtra(EXTRA_PROVINCE, parent);
((Activity) context).startActivityForResult(i, FirstActivity.REQUEST_EVENT_CITY);
}

// public static void actionFilterDataLaunch(Context context){
// Intent i=new Intent(context,CityActivity.class);
// ((Activity) context).startActivityForResult(i, FirstActivity.REQUEST_EVENT_CITY);
//// context.startActivity(i);
// }
public void initlayout() {
mInflater = (LayoutInflater) this
.getSystemService(LAYOUT_INFLATER_SERVICE);
titleView = (TextView) findViewById(R.id.common_title_text);
backButton = (Button) findViewById(R.id.common_title_back);
optionButton = (Button) findViewById(R.id.common_title_option);
optionButton.setVisibility(View.INVISIBLE);
backButton.setOnClickListener(this);
// backButton.setText();

Intent intent = getIntent();
String action = intent.getAction();
Bundle extras = intent.getExtras();
if (action != null) {
if (action.equals(FirstActivity.ACTION_CHOOSE_CITY)) {
parentArea =extras.getString(EXTRA_PROVINCE);
}
} else{
Log.i("TAG", "");
}
titleView.setText(parentArea);

addDataToUI();

lvProvinces = (ListView) this.findViewById(R.id.lv_provinces);
adapter = new CitiesAdapter();
lvProvinces.setAdapter(adapter);
lvProvinces.setOnItemClickListener(this);
}

private void addDataToUI() {
mCitiesData=Util.parseCityXML(Util.getFromAsset(file2, this), parentArea);//這里同ProvincesActivity中一樣,解析xml再賦給ListView的數(shù)組
}

@Override
public void onClick(View v) {
if (v.getId() == R.id.common_title_back) {
finish();
}
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent data = new Intent();
String city=mCitiesData.get(position);
Bundle bundle = new Bundle();
bundle.putString(FirstActivity.EXTRA_CHOOSE_CITY, city);
data.putExtras(bundle);
this.setResult(RESULT_OK,
data);
finish();
}
class CitiesAdapter extends BaseAdapter {
@Override
public int getCount() {
if (mCitiesData == null || mCitiesData.size() == 0) {
return 0;
} else {
return mCitiesData.size();
}
}
@Override
public Object getItem(int position) {
return mCitiesData.get(position);
}

@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (mCitiesData == null || mCitiesData.size() == 0) {
return null;
}
String cityName = mCitiesData.get(position);
convertView = mInflater.inflate(R.layout.change_city_item_view,
parent, false);
ViewHolder holder = new ViewHolder();
holder.tvCityName = (TextView) convertView
.findViewById(R.id.tv_name);
holder.tvCityName.setText(cityName);
holder.tvArrow=(TextView)convertView.findViewById(R.id.tvArrow);
holder.tvArrow.setVisibility(View.GONE);
return convertView;
}
}

class ViewHolder {
private TextView tvCityName;
private TextView tvArrow;
}
}

 

最后是讀取assets文件夾下xml,以及通過(guò)XmlPullParser解析給ListView

 

public class Util {

public static final String ENCODING = "UTF-8";

public static String getFromAsset(String fileName, Context context) {//讀取文件的方法
String result = "";
try {
InputStream in = context.getResources().getAssets().open(fileName); // 從Assets中的文件獲取輸入流
int length = in.available(); // 獲取文件的字節(jié)數(shù)
byte[] buffer = new byte[length]; // 創(chuàng)建byte數(shù)組
in.read(buffer); // 將文件中的數(shù)據(jù)讀取到byte數(shù)組中
result = EncodingUtils.getString(buffer, ENCODING); // 將byte數(shù)組轉(zhuǎn)換成指定格式的字符串
} catch (Exception e) {
e.printStackTrace(); // 捕獲異常并打印
}
return result;
}

public static ArrayList<String> parseXML(String strXml) {//解析第一個(gè)xml文件
ArrayList<String> arraylist = new ArrayList<String>();
if (strXml == null || strXml.equals(""))
return null;
try {
XmlPullParser xmlParser = Xml.newPullParser();
xmlParser.setInput(new StringReader(strXml));
int evtType = xmlParser.getEventType();
while (evtType != XmlPullParser.END_DOCUMENT) {
switch (evtType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
String tag = xmlParser.getName();
/*
* if (tag.equalsIgnoreCase("Panel")) { Log.i("TAG",
* ">>>>>>>>>>>>>>已讀到 " + tag +
* "<<<<<<<<<<<<<<<<<<<<<<<<<"); }
*/
if (tag.equalsIgnoreCase("province")) {
String province = xmlParser.nextText();
arraylist.add(province);
Log.i(tag, ">>>>>>>>>>>>>> province = " + province);
}
break;
case XmlPullParser.END_TAG:
break;
}
evtType = xmlParser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return arraylist;
}

public static ArrayList<String> parseCityXML(String strXml, String Province) {//解析第二個(gè)xml文件
ArrayList<String> citylist = new ArrayList<String>();
String province = null;
if (strXml == null || strXml.equals(""))
return null;
try {
XmlPullParser xmlParser = Xml.newPullParser();
xmlParser.setInput(new StringReader(strXml));
int evtType = xmlParser.getEventType();
while (evtType != XmlPullParser.END_DOCUMENT) {
switch (evtType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
String tag = xmlParser.getName();
if (tag.equalsIgnoreCase("Panel")) {
Log.i("TAG", ">>>>>>>>>>>>>>開(kāi)始讀取文檔 " + tag
+ "<<<<<<<<<<<<<<<<<<<<<<<<<");
}
if (tag.equalsIgnoreCase("province")) {
province = xmlParser.nextText();
}
if (Province.equalsIgnoreCase(province)) {
if (tag.equalsIgnoreCase("city")) {
String district = xmlParser.nextText();
citylist.add(district);
Log.i("TAG", "citylist:" + citylist);
}
}
break;
case XmlPullParser.END_TAG:
break;
}
evtType = xmlParser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return citylist;
}
}

想要獲得成功,首先要自己相信自己,再者要贏得周?chē)笥训男湃危?/div>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服