development

Intent.putExtra 목록

big-blog 2021. 1. 5. 21:06
반응형

Intent.putExtra 목록


중복 가능성 : 인
텐트에 목록을 넣는 방법

한 활동에서 다른 활동으로 목록 을 전달하고 싶습니다 . 지금까지 나는 성공하지 못했습니다. 이것은 내 코드입니다.

//desserts.java

private List<Item> data;  

@Override
public void onCreate(Bundle icicle) {
//Code
data.add(new Item(10, "dessert1"));
data.add(new Item(11, "dessert2"));
data.add(new Item(12, "dessert3"));
data.add(new Item(13, "dessert4"));
data.add(new Item(14, "dessert5"));
data.add(new Item(15, "dessert6"));
data.add(new Item(16, "dessert7"));
data.add(new Item(17, "dessert8"));
data.add(new Item(18, "dessert9"));
data.add(new Item(19, "dessert10"));
data.add(new Item(20, "dessert11"));  

//Some more code  
}  

@Override
public void onClick(View v) {  
Intent view_order_intent = new Intent(this, thirdpage.class);
view_order_intent.putExtra("data", data); 
startActivity(view_order_intent);  
}   

그러나 나는 이런 식으로 데이터 를 넣을 수 없습니다 . 나는이 질문을 더 일찍 물 었지만별로 일어나지 않았다.
친절하게 도와주세요. 다음 활동에서 데이터 를 얻는 방법도 도와주세요 .


목록이 문자열 목록이라고 가정하면 데이터를 ArrayList<String>만들고 사용합니다.intent.putStringArrayListExtra("data", data)

다음은 필요한 코드의 골격입니다.

  1. 목록 선언

    private List<String> test;
    
  2. 적절한 위치에 목록 초기화

    test = new ArrayList<String>();
    

    에 적절하게 데이터를 추가합니다 test.

  3. 다음과 같이 의도에 전달하십시오.

    Intent intent = getIntent();  
    intent.putStringArrayListExtra("test", (ArrayList<String>) test);
    
  4. 다음과 같이 데이터를 검색합니다.

    ArrayList<String> test = getIntent().getStringArrayListExtra("test");
    

도움이되기를 바랍니다.


목록 대신 ArrayList를 사용하면 문제가 해결됩니다. 코드에서 List를 ArrayList로 수정하십시오.

private List<Item> data;

두 가지 방법으로 할 수 있습니다.

  • 직렬화 가능

  • 소포 가능.

이 예제는 직렬화 가능으로 구현하는 방법을 보여줍니다.

class Customer implements Serializable
{
   // properties, getter setters & constructor
}

// This is your custom object
Customer customer = new Customer(name, address, zip);

Intent intent = new Intent();
intent.setClass(SourceActivity.this, TargetActivity.this);
intent.putExtra("customer", customer);
startActivity(intent);

// Now in your TargetActivity
Bundle extras = getIntent().getExtras();
if (extras != null)
{
    Customer customer = (Customer)extras.getSerializable("customer");
    // do something with the customer
}

이제 이것을 보세요 . 이 링크는 Parcelable로 구현하는 방법에 대한 간략한 개요를 제공합니다.

이것 좀 봐 . . 이 토론은 그것을 구현하는 훨씬 더 좋은 방법을 알려줄 것입니다.

감사.


 //To send from the activity that is calling another activity via myIntent

    myIntent.putExtra("id","10");
    startActivity(myIntent);

    //To receive from another Activity

            Bundle bundle = getIntent().getExtras();
            String id=bundle.getString("id");

참조 URL : https://stackoverflow.com/questions/6543811/intent-putextra-list

반응형