[android] Android에서 의도적으로 추가 데이터를 얻는 방법은 무엇입니까?

한 활동 (의도)에서 다른 활동으로 데이터를 보내려면 어떻게해야합니까?

이 코드를 사용하여 데이터를 보냅니다.

Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);



답변

먼저, getIntent()방법을 사용하여 활동을 시작한 의도를 얻으십시오 .

Intent intent = getIntent();

추가 데이터가 문자열로 표시되면 intent.getStringExtra(String name)method 를 사용할 수 있습니다 . 귀하의 경우 :

String id = intent.getStringExtra("id");
String name = intent.getStringExtra("name");


답변

받는 활동에서

Bundle extras = getIntent().getExtras(); 
String userName;

if (extras != null) {
    userName = extras.getString("name");
    // and get whatever type user account id is
}


답변

//  How to send value using intent from one class to another class
//  class A(which will send data)
    Intent theIntent = new Intent(this, B.class);
    theIntent.putExtra("name", john);
    startActivity(theIntent);
//  How to get these values in another class
//  Class B
    Intent i= getIntent();
    i.getStringExtra("name");
//  if you log here i than you will get the value of i i.e. john


답변

추가

데이터 설정

String value = "Hello World!";
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
intent.putExtra("sample_name", value);
startActivity(intent);

데이터 가져 오기

String value;
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
    value = bundle.getString("sample_name");
}


답변

데이터를 수신하려는 또 다른 새로운 의도를 초기화하는 대신 다음을 수행하십시오.

String id = getIntent().getStringExtra("id");


답변

FragmentActivity에서 사용되는 경우 다음을 시도하십시오.

첫 페이지는 FragmentActivity를 확장합니다

Intent Tabdetail = new Intent(getApplicationContext(), ReceivePage.class);
Tabdetail.putExtra("Marker", marker.getTitle().toString());
startActivity(Tabdetail);

프래그먼트에서는 getActivity()먼저 전화 하면됩니다.

두 번째 페이지는 조각을 확장합니다 .

String receive = getActivity().getIntent().getExtras().getString("name");


답변

조각으로 여분의 데이터를 얻으려고하면 다음을 사용하십시오.

다음을 사용하여 데이터를 배치하십시오.

Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER);

다음을 사용하여 데이터를 가져옵니다.

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


  getArguments().getInt(ARG_SECTION_NUMBER);
  getArguments().getString(ARG_SECTION_STRING);
  getArguments().getBoolean(ARG_SECTION_BOOL);
  getArguments().getChar(ARG_SECTION_CHAR);
  getArguments().getByte(ARG_SECTION_DATA);

}