2012-04-13 56 views
0

我的应用程序有3个选项卡。在这个标签中有多个活动(意味着这个标签有导航到子标签)。我在一个小孩活动中使用了startActivityforResult()。但控制永远不会去onActivityResult()方法。如何实现这一点。请任何人都可以帮助我。android - 如何在标签中使用startActivityForResult()

代码

public class Activity_1 extends Activity 
{ 


public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    View contentView = LayoutInflater.from(getParent()).inflate(R.layout.static_search_filters, null); 
    setContentView(contentView); 

    states_tv = (TextView)findViewById(R.id.state); 
    states_tv.setOnClickListener(states_etListener);   
} 

private OnClickListener states_etListener = new View.OnClickListener() 
{ 
    public void onClick(View v) 
    {    
     Intent intent = new Intent(getParent(), RB_CategoriesMList.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivityForResult(intent,GET_SEL_STATES_LIST);    
    }  
}; 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
     super.onActivityResult(requestCode, resultCode, data);  
     //I do some stuff here 
} 
} 

// Activity_2

public class RB_CategoriesMList extends ListActivity 
{ 



public Button sbtn; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.categories_list);   

    sbtn =(Button)findViewById(R.id.submit_categories); 
    sbtn.setOnClickListener(sbtn_listener); 
}  

private OnClickListener sbtn_listener = new View.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     Intent state_intent = getIntent();    
     state_intent.putExtra("selected_states", "");          
     setResult(RESULT_OK,state_intent); 
     finish();   
    }  
}; 
} 
+0

http://stackoverflow.com/questions/1306689/launching-activities-within-a-tab-in-android ......反正你不应该这样做...它像你的用户界面不适合Android设计的接缝 – Selvin 2012-04-13 12:39:15

回答

0

不要调用

super.onActivityResult(requestCode, resultCode, data);  

当您收到onActivityResult,检查请求的代码是你的,然后做你的东西。在其他情况下,你应该叫超级。

所以:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == GET_SEL_STATES_LIST) { 
     // Do your stuff 
    } else { 
     super.onActivityResult(requestCode, resultCode, data);  
    } 
} 
0
getParent().startActivityForResult(yourNewIntent, yourResult); 
相关问题