Android 如何在register parentcategory childcategory注册表中使用startActivityForResult?

Android 如何在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

我有一个注册活动,其中我有一个字段类别,其中我调用了一个父活动ListView,另一个是选中复选框的基础,我调用了子类别ListView。两个ListView都是从数据库sqlite填充的。如何使用startActivityForResult

RegisterActivity.class

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
}