Android 如何在register parentcategory childcategory注册表中使用startActivityForResult?
我有一个注册活动,其中我有一个字段类别,其中我调用了一个父活动ListView,另一个是选中复选框的基础,我调用了子类别ListView。两个ListView都是从数据库sqlite填充的。如何使用startActivityForResult RegisterActivity.classAndroid 如何在register parentcategory childcategory注册表中使用startActivityForResult?,android,android-intent,android-activity,startactivityforresult,Android,Android Intent,Android Activity,Startactivityforresult,我有一个注册活动,其中我有一个字段类别,其中我调用了一个父活动ListView,另一个是选中复选框的基础,我调用了子类别ListView。两个ListView都是从数据库sqlite填充的。如何使用startActivityForResult RegisterActivity.class spProfession.setOnClickListener(new OnClickListener() { @Override
spProfession.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in =new Intent(RegisterActivity.this,Signup_category.class);
in.putExtra("typeOfUser", typeOfUser);
startActivityForResult(in, 2);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(resultCode == RESULT_OK && requestCode == 2)
{
if (data.hasExtra("parentkey")) {
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show();
/* Intent in=new Intent(RegisterActivity.this,Child_Category.class);
startActivityForResult(in, requestCode);
*/ }
/*String message="heloo";
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
*/ }
}
ParentCategory.class
单击注册表中的类别时调用此活动
public class Signup_category extends ActionBarActivity implements
OnItemClickListener, OnCheckedChangeListener {
ListView listView1;
Button btn;
ArrayList<String> list;
DatabaseHandler databaseHandler;
String typeOfUser;
Context context = null;
CategoryAdapter<ProfessionEntity> adapter;
CategoryAdapter<?> categoryAdapter;
ArrayList<Integer> arr = null;
ListView lv = null;
ArrayList<String> selectedStrings = new ArrayList<String>();
ArrayList<ProfessionEntity> listProfession = new ArrayList<ProfessionEntity>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup_category);
listView1 = (ListView) findViewById(R.id.listView1);
btn = (Button) findViewById(R.id.button1);
listView1.setOnItemClickListener(this);
listView1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
InitDatabase();
Intent in = getIntent();
typeOfUser = in.getStringExtra("typeOfUser");
loadProfessionData(typeOfUser);
CheckButtonClick();
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void loadProfessionData(String pos) {
listProfession = databaseHandler.getParentCategory(typeOfUser);
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < listProfession.size(); i++) {
Log.d("prfoession:", listProfession.get(i).getDecription());
list.add("" + listProfession.get(i).getDecription());
}
adapter = new CategoryAdapter<ProfessionEntity>(Signup_category.this,listProfession);
listView1.setAdapter(adapter);
}
}
@Override
public void finish() {
Intent data = new Intent();
data.putExtra("parentkey", arr);
setResult(RESULT_OK, data);
super.finish();
}
public void CheckButtonClick(){
StringBuffer responseText = new StringBuffer();
responseText.append("The following were selected...\n");
ArrayList<ProfessionEntity> listentity = adapter.getCheckedItems();
for(int i=0;i<listentity.size();i++)
{
ProfessionEntity profs = listentity.get(i);
Log.d("parentkey",String.valueOf(profs.getParent_key()));
Log.d("selection",String.valueOf(profs.isSelected()));
if(profs.isSelected())
{
responseText.append("\n" + profs.getDecription());
}
arr.add(profs.getParent_key());
}
}
}
公共类注册\u类别扩展ActionBarActivity实现
OnItemClickListener,OnCheckedChangeListener{
列表视图列表视图1;
按钮btn;
数组列表;
DatabaseHandler DatabaseHandler;
字符串类型用户;
Context=null;
类别适配器;
类别适配器类别适配器;
ArrayList arr=null;
ListView lv=null;
ArrayList selectedStrings=新建ArrayList();
ArrayList listProfession=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u signup\u category);
listView1=(ListView)findViewById(R.id.listView1);
btn=(按钮)findViewById(R.id.button1);
listView1.setOnItemClickListener(此);
listView1.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
InitDatabase();
Intent in=getIntent();
typeOfUser=in.getStringExtra(“typeOfUser”);
loadProfessionData(用户类型);
选中按钮单击();
btn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
完成();
}
});
}
专用void loadProfessionData(字符串位置){
listProfession=databaseHandler.getParentCategory(typeOfUser);
ArrayList=新建ArrayList();
对于(int i=0;i 对于(int i=0;i如果您希望从传递给A的活动C中获得结果:
从活动A开始活动B:
Intent showB = new Intent(ActivityA, ActivityB);
startActivityForResult(showB, RequestCode);
在活动B中调用C:
Intent showC = new Intent(ActivityC);
showC.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(showC);
finish(); //Close Activity B
在C中:
以一种方式:
从B启动活动C时,您可能已经注意到意图标志
公共静态最终整数标志\活动\转发\结果自:API级别1
如果设置并使用此意图从>现有活动启动新活动,则现有活动的回复目标将>转移到新活动。这样,新活动可以调用>设置结果(int),并将该结果发送回>原始活动的回复目标
这样,如果您想从传递给A的活动C中获得结果,A应该在从C返回的额外数据中提取返回的任何数据:
从活动A开始活动B:
Intent showB = new Intent(ActivityA, ActivityB);
startActivityForResult(showB, RequestCode);
在活动B中调用C:
Intent showC = new Intent(ActivityC);
showC.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(showC);
finish(); //Close Activity B
在C中:
以一种方式:
从B启动活动C时,您可能已经注意到意图标志
公共静态最终整数标志\活动\转发\结果自:API级别1
如果设置并使用此意图从>现有活动启动新活动,则现有活动的回复目标将>转移到新活动。这样,新活动可以调用>设置结果(int),并将该结果发送回>原始活动的回复目标
这样,A应该从C发回的额外信息中提取任何发回的数据。你到底想要实现什么?你的代码很混乱。你想要活动A-活动B-活动C-活动A,即链接系列吗?没有得到你的问题是什么???是的,我活动A然后在此基础上打开活动B,并基于B选择的数据项i want打开活动c,然后返回到活动A您到底想要实现什么?您的代码很混乱。您想要活动A-活动B-活动c-活动A,即链接系列吗?不明白您的问题是什么???是的,我活动A然后在此基础上打开活动B,并基于B的选定数据项打开活动c和返回活动是啊,非常感谢,不客气。很高兴它有帮助。是的,非常感谢,不客气。很高兴它有帮助。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
...... handle RequestCode here
}