首页 > 编程知识 正文

android dialog,安卓8startactivity

时间:2023-05-04 23:43:08 阅读:119147 作者:1770

startActivityForResult用于启动其他指定的活动,并期待从指定的活动返回的结果。

启动其他活动并返回结果进程:

当前,ActivityA必须调用与startactivityforresult (intrequestcode,Intent intent )请求调用参数intent相对应的ActivityB。 请求代码是requestcode,需要改写onactivityresuunt int result code,Intent intent ),启动的ActivityB返回结果时,设置result,intent

请求代码和结果代码

一个Activity包含多个按钮,可以调用多个startActivityForResult方法来打开不同的Activity处理业务。 这些新的Activity结束时,将调用上一个Activity的onActivityResult方法。 为了知道该方法是由哪个请求结果触发的,requestCode标签可用于使用resultCode标签来知道所返回的数据来自该新的Activity

例如,第二个Activity让用户选择信息,并将结果返回到第一个Activity

MainActivity.java

package com.HUST.activityforresult;

导入安卓. app.activity;

导入安卓. content.intent;

导入安卓. OS.bundle;

导入安卓. view.menu;

import android.view.MenuItem;

导入安卓. view.view;

导入安卓. view.view.onclick listener;

import Android .构件. button;

import Android .构件. edittext;

publicclassmainactivityextendsactivity {

Button bn;

编辑编辑;

@Override

protectedvoidoncreate (边界维护实例state )。

super.oncreate (savedinstancestate;

setcontentview (r.layout.activity _ main;

bn=(Button ) findviewbyid ) r.id.Button1;

edit=(edittext ) findviewbyid ) r.id.edittext1;

bn.setonclicklistener (newonclicklistener ) )。

@Override

公共语音在线(查看) {

//todo自动- generated method stub

//创建必须与目标活动对应的英特尔

intent intent=new intent (main activity.this,CityActivity.class );

//启动指定的Activity,等待返回的结果。 0是请求代码。 用于表示这个要求

startactivityforresult(intent,0 );

}

);

}

//重写此方法以回调的形式获取Activity返回的结果

@Override

protectedvoidonactivityresult (intrequestcode,int resultCode,Intent data ) {

//todo自动- generated method stub

super.onactivityresult (请求代码,结果代码,数据);

//如果请求代码和结果代码都为0,即处理的特定结果

if (请求代码==0result代码==0) {

获取绑定数据

Bundle bundle=data.getExtras (;

string city=bundle.getstring (' city );

//修改编辑框的内容

>edit.setText(city);

}

}

CityActivity.java

package com.hust.activityforresult;

import android.app.ExpandableListActivity;

import android.content.Intent;

import android.graphics.Color;

import android.os.Bundle;

import android.view.Gravity;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.BaseExpandableListAdapter;

import android.widget.ExpandableListAdapter;

import android.widget.ExpandableListView;

import android.widget.ExpandableListView.OnChildClickListener;

import android.widget.TextView;

public class CityActivity extends ExpandableListActivity {

//定义省份

private String[] provinces={

"广东","湖北","河南"

};

//定义城市

private String[][] cities={

{"广州","深圳","珠海","惠州"},

{"武汉","襄阳","随州","十堰"},

{"郑州","平顶山","信阳","驻马店"}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.activity_city);

ExpandableListAdapter ad=new BaseExpandableListAdapter(){

private TextView getTextView(){

AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64);

TextView textview =new TextView(CityActivity.this);

textview.setLayoutParams(lp);

textview.setTextSize(16);

textview.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);

textview.setPadding(30, 5, 0, 5);

return textview;

}

@Override

public int getGroupCount() {

// TODO Auto-generated method stub

return provinces.length;

}

@Override

public int getChildrenCount(int groupPosition) {

// TODO Auto-generated method stub

return cities[groupPosition].length;

}

@Override

public Object getGroup(int groupPosition) {

// TODO Auto-generated method stub

return provinces[groupPosition];

}

@Override

public Object getChild(int groupPosition, int childPosition) {

// TODO Auto-generated method stub

return cities[groupPosition][childPosition];

}

@Override

public long getGroupId(int groupPosition) {

// TODO Auto-generated method stub

return groupPosition;

}

@Override

public long getChildId(int groupPosition, int childPosition) {

// TODO Auto-generated method stub

return childPosition;

}

@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

return false;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded,

View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

TextView text=getTextView();

text.setTextColor(Color.RED);

text.setText(getGroup(groupPosition).toString());

return text;

}

@Override

public View getChildView(int groupPosition, int childPosition,

boolean isLastChild, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

TextView text=getTextView();

text.setText(getChild(groupPosition, childPosition)

.toString());

return text;

}

//主要在给子选项设置监听器时,这个函数一定要返回true,否则监听器没有用

@Override

public boolean isChildSelectable(int groupPosition,

int childPosition) {

// TODO Auto-generated method stub

return true;

}

};

//设置adapter

setListAdapter(ad);

//为每个子选项添加监听器

getExpandableListView().setOnChildClickListener(new OnChildClickListener(){

@Override

public boolean onChildClick(ExpandableListView parent, View v,

int groupPosition, int childPosition, long id) {

// TODO Auto-generated method stub

//获取启动该Activity之前的Activity对应的Intent

Intent intent=getIntent();

intent.putExtra("city", cities[groupPosition][childPosition]);

//设置该Activity的结果码,并设置结束之后退回的Activity

CityActivity.this.setResult(0, intent);

//结束本Activity

CityActivity.this.finish();

return false;

}

});

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。