Pass 2D array to another Activity

后端 未结 5 1966
猫巷女王i
猫巷女王i 2020-11-30 12:43

how do i pass 2 denominational array object as a parameter to another activity

how to get two dimensional array string value in another activity

   S         


        
相关标签:
5条回答
  • 2020-11-30 13:24

    You can use putSerializable. Arrays are serializable.

    To store:

    bundle.putSerializable("list", selected_list); // Here bundle is Bundle object.

    To access:

    String[][] passedString_list = (String[][]) bundle.getSerializable("list");
    

    Example

    Intent mIntent = new Intent(this, Example.class);
    Bundle mBundle = new Bundle();
    mBundle.putSerializable("list", selected_list);
    mIntent.putExtras(mBundle);
    
    0 讨论(0)
  • 2020-11-30 13:25

    one Solution is that you can set it as Static so that you can use that in any of your activity.

    Class A{
     public static String [][]str;
    ...
        Intent l = new Intent(context,AgAppMenu.class);
                     l.putExtra("msg",str);
                     l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
                     context.startActivity(l);
    
    
    }
    
    Class B{
    
    ...
    you can use it with Just A.(ArrayName)
    System.out.println(A.str);
    
    }
    

    Hope it will Help you.

    0 讨论(0)
  • 2020-11-30 13:28

    This finally works well for me :

    To start a new activity (sending String[][] and String):

    String[][] arrayToSend=new String[3][30];
    String stringToSend="Hello";
    Intent i = new Intent(this, NewActivity.class);
    
    i.putExtra("key_string",stringToSend);
    
    Bundle mBundle = new Bundle();
    mBundle.putSerializable("key_array_array",  arrayToSend);
    i.putExtras(mBundle);
    
    startActivity(i);
    

    To access in NewActivity.onCreate:

    String sReceived=getIntent().getExtras().getString("key_string");
    
    String[][] arrayReceived=null;
    Object[] objectArray = (Object[]) getIntent().getExtras().getSerializable("key_array_array");
    if(objectArray!=null){
        arrayReceived = new String[objectArray.length][];
        for(int i=0;i<objectArray.length;i++){
            arrayReceived[i]=(String[]) objectArray[i];
        }
    }
    
    0 讨论(0)
  • 2020-11-30 13:33

    set the 2darray as public static void. let current_class be the class in which we create our 2d array We want to pass the data to NewActivity

    Class<?> ourClass=Class.forName("com.example.testapp.NewActivity");
    Intent ourIntent= new Intent(current_class.this,ourClass);
    intent_name.putExtra("name", 2darray_name);
    startActivity(ourIntent);`
    

    to access this in NewActivity , use current_class.2darray_name where current_class is the class where it was originally defined.

    0 讨论(0)
  • 2020-11-30 13:36

    You may define a custom class which implements Parcelable and contains logic to read and write 2-dimensional-array from/to Parcel. Afterwards, put that parcelable object inside Bundle for transportation.

    0 讨论(0)
提交回复
热议问题