활동 간에 데이터를 전달하려고 합니다.
인텐트를 사용하여 일반 활동 간에 데이터를 전달하려고 합니다.
아래 코드를 고려해 보세요:
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);
}
}
'Activity-1'이라는 다른 액티비티에서 데이터를 인텐트로 AndroidTabRestaurantDescSearchListView
로 전송한다고 가정해 보겠습니다.
이제 Activity-1
에서 가져온 AndroidTabRestaurantDescSearchListView
의 데이터를 어떻게 수신한 다음 다시 RatingDescriptionSearchActivity
로 전달할 수 있을까요?
그림은 : 입니다:
{EDIT} -- 답변에 따라 가능한 경우 --- 안드로이드탭레스토랑Desc검색리스트뷰는 탭 활동이므로 모호함
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);
Activity-1의 데이터를 아래와 같이
AndroidTabRes..`에 전달합니다:
활동 전송 시...
Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class);
intent.putExtra("keyName","value");
startActivity(intent);
AndroidTabRes..` 활동에서...
String data = getIntent().getExtras().getString("keyName");
따라서 보내는 활동에서 받는 활동에서 데이터를 가질 수 있습니다...
그리고 AndroidTabRestaurantDescSearchListView
클래스에서 이렇게 하세요:
String value= getIntent().getStringExtra("keyName");
Intent intent = new Intent(this, RatingDescriptionSearchActivity.class);
intent.putExtra("keyName", value);
startActivity(intent);
그런 다음 RatingDescriptionSearchActivity
클래스에서 이렇게 하세요:
String data= getIntent().getStringExtra("keyName");
안드로이드 탭 레스토랑 디스크로 검색 목록 보기` 활동에서 시도해 보세요.
Intent intent = new Intent(this,RatingDescriptionSearchActivity.class );
intent.putExtras( getIntent().getExtras() );
startActivity( intent );
그런 다음 RatingDescriptionSearchActivity
활동에서 다음을 호출하세요.
getIntent().getStringExtra("key")
당신이 사용할 수 있는 번들 데이터를 얻을:
Bundle extras = intent.getExtras();
String data = extras.getString("data"); // use your key
그리고 다시할 수 있습 opass 이 데이터를 다음의 활동:
Intent intent = new Intent(this, next_Activity.class);
intent.putExtra("data", data);
startActivity(intent);
간단합니다.
'활동 1'에서 이 작업을 수행했다고 가정합니다:
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);
그리고 AndroidTabRestaurantDescSearchListView 클래스에서 이렇게 하세요:
//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);
그런 다음 RatingDescriptionSearchActivity 클래스에서 다음과 같이 하세요:
String extraFromAct1 = getIntent().getStringExtra("string");
주요 활동
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);
}
});
}
}
두 번째 활동을서를 받기 원하는 데이터
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);
}
}
에 FirstActivity:
Intent sendDataToSecondActivity = new Intent(FirstActivity.this, SecondActivity.class);
sendDataToSecondActivity.putExtra("USERNAME",userNameEditText.getText().toString());
sendDataToSecondActivity.putExtra("PASSWORD",passwordEditText.getText().toString());
startActivity(sendDataToSecondActivity);
에 SecondActivity
에서onCreate()
String userName = getIntent().getStringExtra("USERNAME");
String passWord = getIntent().getStringExtra("PASSWORD");