Как конвертировать double [] в Double []? - PullRequest
1 голос
/ 12 июня 2019

У меня есть данные, которые мне нужно передать как Double[], мои данные в double[], и мне нужно передать как Double[], потому что мне нужно изменить его на List<Double>

Вот мой код

ListFragment

 @Override
public void OnEditItem(int position) {
    Model selectedItem = mModel.get(position);
    String selectedKey = selectedItem.getKey();
    String selectedImage = selectedItem.getImagesUri();
    String selecteDescriptions = selectedItem.getImageDescription();
    String selectedImagesName = selectedItem.getImageNames();
    List<Double> selectedataSet = selectedItem.getDataSet();
    double[] zeroSet = new double[selectedataSet.size()];
    for(int i=0; i<zeroSet.length; i++){
        zeroSet[i] = selectedataSet.get(i);
    }
    Log.d(TAG, "thisList: " + datacel);
    EditFragment editFragment = new EditFragment();

    FragmentTransaction fragmentTransaction =
            getActivity().getSupportFragmentManager()
                    .beginTransaction();
    final Bundle bundle = new Bundle();
    bundle.putString("Label", selectedKey);
    bundle.putString("Image", selectedImage);
    bundle.putString("Descriptions", selecteDescriptions);
    bundle.putString("ImagesName", selectedImagesName);

И это код, который получает double[]

EditFragment

private void updateView(View view) {
    if(getArguments()!=null){
    String labelId = getArguments().getString("Label");
    String imagesBundle = getArguments().getString("Image");
    String descriptionsBundle =getArguments().getString("Descriptions");
    String imagesNameBundle =getArguments().getString("ImagesName");
    double[] dataSet = getArguments().getDoubleArray("DataSet");

            //this i where i need to change into Double[];

    Log.d(TAG, "thisLIst: " + dataSet);

        etName.setText(String.valueOf(imagesNameBundle));
        etDescribe.setText(descriptionsBundle);
        Picasso.get().load(imagesBundle).into(ImageInput);
        simpleActivity.setDataToListView(value, listViewDataSet,context); // this value need Double[];

Отредактированный

Я думаю, что моя ошибка начинается отсюда,

double[] zeroSet = new 
double[selectedataSet.size()];
for(int i=0; i<zeroSet.length; i++){
    zeroSet[i] = selectedataSet.get(i);
}

потому что данные, которые я получил,

enter image description here

как я могу решить это?

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Это совсем не сложно. Вам просто нужно скопировать элементы массива самостоятельно, например

double[] dataSet = getArguments().getDoubleArray("DataSet");

Double[] boxedDataSet = new Double[dataSet.length];

for ( int i = 0; i < dataSet.length; i++ ) {
  boxedDataSet[i] = dataSet[i]; // Invokes auto-boxing
  // Equivalent, more explicit alternative:
  // boxedDataSet[i] = Double.valueOf(dataSet[i]);
}
1 голос
/ 12 июня 2019

Попробуйте что-то вроде этого:

import java.util.Arrays;

class BoxArrayExample {
  public static void main(String[] args) {
    double[] arr = new double[] {1.0, 2.0, 3.0};
    System.out.println(String.format("Unboxed array: %s", Arrays.toString(arr)));
    Double[] boxedArr = Arrays.stream(arr)
                              .boxed()
                              .toArray(Double[]::new);
    System.out.println(String.format("Boxed array: %s", Arrays.toString(boxedArr)));
  }
}

Выход:

Unboxed array: [1.0, 2.0, 3.0]
Boxed array: [1.0, 2.0, 3.0]
...