可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am trying to pass the data between Activities
I use intents to pass data between regular activities
consider the code below::
AndroidTabRestaurantDescSearchListView.java
public class AndroidTabRestaurantDescSearchListView extends TabActivity {
// TabSpec Names
private static final String INBOX_SPEC = \"Rating\";
private static final String OUTBOX_SPEC = \"Price\";
Button Photos;
Button Filter;
Button Search;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = getTabHost();
// Inbox Tab
TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
Intent inboxIntent = new Intent(this, RatingDescriptionSearchActivity.class);
inboxSpec.setIndicator(INBOX_SPEC);
// Tab Content
inboxSpec.setContent(inboxIntent);
// Outbox Tab
TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC);
Intent PriceIntent = new Intent(this, PriceDescriptionSearchActivity.class);
PriceSpec .setIndicator(OUTBOX_SPEC);
PriceSpec.setContent(PriceIntent);
// Adding all TabSpec to TabHost
tabHost.addTab(inboxSpec);
tabHost.addTab(PriceSpec);
//Set the current value tab to default first tab
tabHost.setCurrentTab(0);
}
}
Suppose i send data from Someother activity called Activity-1
to AndroidTabRestaurantDescSearchListView
as intents
Now how can i recieve the data in AndroidTabRestaurantDescSearchListView
which i got from Activity-1
and then again pass it into RatingDescriptionSearchActivity
Pictoral representation is ::
{EDIT} -- If this is possible based on answers --- Ambiguity because AndroidTabRestaurantDescSearchListView is a tab activity
TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
Intent inboxIntent = new Intent(this, RatingDescriptionActivity.class);
intent.putExtra(\"keyName\", value);
inboxSpec.setIndicator(INBOX_SPEC);
// Tab Content
inboxSpec.setContent(inboxIntent);
回答1:
Pass the data from Activity-1
to AndroidTabRes..
as below:
At sending activity...
Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class);
intent.putExtra(\"keyName\",\"value\");
startActivity(intent);
At AndroidTabRes..
activity...
String data = getIntent().getExtras().getString(\"keyName\");
Thus you can have data at receiving activity from sending activity...
And in your AndroidTabRestaurantDescSearchListView
class, do this:
String value= getIntent().getStringExtra(\"keyName\");
Intent intent = new Intent(this, RatingDescriptionSearchActivity.class);
intent.putExtra(\"keyName\", value);
startActivity(intent);
Then in your RatingDescriptionSearchActivity
class, do this:
String data= getIntent().getStringExtra(\"keyName\");
回答2:
Try this from your AndroidTabRestaurantDescSearchListView
activity
Intent intent = new Intent(this,RatingDescriptionSearchActivity.class );
intent.putExtras( getIntent().getExtras() );
startActivity( intent );
And then from RatingDescriptionSearchActivity
activity just call
getIntent().getStringExtra(\"key\")
回答3:
You can use Bundle to get data :
Bundle extras = intent.getExtras();
String data = extras.getString(\"data\"); // use your key
And again you can opass this data to next activity :
Intent intent = new Intent(this, next_Activity.class);
intent.putExtra(\"data\", data);
startActivity(intent);
回答4:
Simple.
Assuming that in your Activity-1
, you did this:
String stringExtra = \"Some string you want to pass\";
Intent intent = new Intent(this, AndroidTabRestaurantDescSearchListView.class);
//include the string in your intent
intent.putExtra(\"string\", stringExtra);
startActivity(intent);
And in your AndroidTabRestaurantDescSearchListView class, do this:
//fetch the string from the intent
String extraFromAct1 = getIntent().getStringExtra(\"string\");
Intent intent = new Intent(this, RatingDescriptionSearchActivity.class);
//attach same string and send it with the intent
intent.putExtra(\"string\", extraFromAct1);
startActivity(intent);
Then in your RatingDescriptionSearchActivity class, do this:
String extraFromAct1 = getIntent().getStringExtra(\"string\");
回答5:
Main Activity
public class MainActivity extends Activity {
EditText user, password;
Button login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user = (EditText) findViewById(R.id.username_edit);
password = (EditText) findViewById(R.id.edit_password);
login = (Button) findViewById(R.id.btnSubmit);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Second.class);
String uservalue = user.getText().toString();
String name_value = password.getText().toString();
String password_value = password.getText().toString();
intent.putExtra(\"username\", uservalue);
intent.putExtra(\"password\", password_value);
startActivity(intent);
}
});
}
}
Second Activity in which you want to receive Data
public class Second extends Activity{
EditText name, pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
name = (EditText) findViewById(R.id.editText1);
pass = (EditText) findViewById(R.id.editText2);
String value = getIntent().getStringExtra(\"username\");
String pass_val = getIntent().getStringExtra(\"password\");
name.setText(value);
pass.setText(pass_val);
}
}
回答6:
In FirstActivity:
Intent sendDataToSecondActivity = new Intent(FirstActivity.this, SecondActivity.class);
sendDataToSecondActivity.putExtra(\"USERNAME\",userNameEditText.getText().toString());
sendDataToSecondActivity.putExtra(\"PASSWORD\",passwordEditText.getText().toString());
startActivity(sendDataToSecondActivity);
In SecondActivity
In onCreate()
String userName = getIntent().getStringExtra(\"USERNAME\");
String passWord = getIntent().getStringExtra(\"PASSWORD\");
回答7:
I like to use this clean code to pass one value only:
startActivity(new Intent(context, YourActivity.class).putExtra(\"key\",\"value\"));
This make more simple to write and understandable code.