I have a question about communication between activities on implementation program of Android.
Here is two activity classes.
public class HelloAndroidActivity extends TabActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, Tab1Activity.class);
spec = tabHost.newTabSpec("Tab1").setIndicator(
"Tab1", res.getDrawable(R.drawable.ic_tab_icon))
.setContent(intent);
tabHost.addTab(spec);
}
}
_
public class Tab1Activity extends ListActivity {
private ArrayList<String> list = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
list = new ArrayList<String>();
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list));
addColumn("one");
addColumn("two");
addColumn("three");
}
public void addColumn(String s){
list.add(new String(s));
}
}
HelloAndroidActivity is main activity. Tab1Activity is sub activity and display listview. HelloAndroidActivity include Tab1Activity view.
What I want to do is calling addColumn method from HelloAndroidActivity, because HelloAndroidActivity is added to new function like TwitterUserStreamAdapter. If the android receive messages from internet, application send message to Tab1Activity.
However, I don't know how to implement communication between activities.
You can pass data between activities using
intent
, you could put it in the extras with the intent:HelloAndroidActivity
Tab1Activity
EDIT If you need to event/listener mechanism it could be roughly like this(haven't compiled this, but should give you an idea):
although you can do it by creating static method , but not right way because it will leave context . pass data to Tab1Activity you have in HelloAndroidActivity throgh intent . inside Tab1Activity getIntent and work accordingly .
you can also use onTabChange() to reflect changes between tabs .