Получение JSON данных в HashMap - PullRequest
1 голос
/ 06 февраля 2020

Я получаю данные из json как: «B11, B12, B22, F11, F22, F1, F2, F3»

, тогда у меня есть 50 значков на макете, когда я получаю данные как » B11, B12, B22, F11, F22, F1, F2, F3 "

Я надеюсь, что 8 иконок ВИДИМЫ, а 42 иконки НЕВИДИМЫ.

Все, что я думаю, это использовать HashMap, но на самом деле Я действительно не знаю, как это сделать?

На этой фотографии 49 кругов, каждый круг - ImageView.

49 кругов НЕВИДИМ, если не получить никаких данных.

передняя фотография имеет 27 циклов, задняя фотография имеет 22 цикла.

B11 локально на правом фланге, F3 локально на правом плече.

Эти круги видимы / не видны на основе данных json Я получаю.

enter image description here

мой xml файл:

<RelativeLayout
    android:layout_alignTop="@+id/pv_icon"
    android:layout_height="match_parent"
    android:layout_marginLeft="50dp"
    android:layout_toRightOf="@+id/view_pain_level"
    android:layout_width="match_parent">

    <ImageView
        android:id="@+id/iv_pain_position"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@mipmap/pain_position" />

    <ImageView
        android:id="@+id/body_f1"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="16dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b1"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="266dp"
        android:layout_marginTop="18dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f2"
        android:layout_below="@+id/body_f1"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b2"
        android:layout_below="@+id/body_b1"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="266dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f3"
        android:layout_below="@+id/body_f2"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="84dp"
        android:layout_marginTop="13dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f4"
        android:layout_alignTop="@+id/body_f3"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="44dp"
        android:layout_toRightOf="@+id/body_f3"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b3"
        android:layout_below="@+id/body_b2"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="240dp"
        android:layout_marginTop="12dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b4"
        android:layout_alignTop="@+id/body_b3"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="44dp"
        android:layout_toRightOf="@+id/body_b3"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f5"
        android:layout_below="@+id/body_f2"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f11"
        android:layout_below="@+id/body_f5"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f15"
        android:layout_below="@+id/body_f11"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="40dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f6"
        android:layout_below="@+id/body_f3"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="80dp"
        android:layout_marginTop="12dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f9"
        android:layout_alignTop="@+id/body_f6"
        android:layout_below="@+id/body_f3"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/body_f6"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f8"
        android:layout_alignTop="@+id/body_f9"
        android:layout_below="@+id/body_f5"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/body_f9"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f7"
        android:layout_alignTop="@+id/body_f8"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/body_f8"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f26"
        android:layout_below="@+id/body_f15"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="96dp"
        android:layout_marginTop="7dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f27"
        android:layout_alignTop="@+id/body_f26"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/body_f26"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f10"
        android:layout_below="@+id/body_f6"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="75dp"
        android:layout_marginTop="19dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f12"
        android:layout_alignTop="@+id/body_f10"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="28dp"
        android:layout_toRightOf="@+id/body_f11"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f13"
        android:layout_below="@+id/body_f10"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="18dp"
        android:layout_width="@dimen/body_height"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f14"
        android:layout_alignTop="@+id/body_f13"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="72dp"
        android:layout_toRightOf="@+id/body_f13"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f16"
        android:layout_below="@+id/body_f13"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="65dp"
        android:layout_marginTop="18dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f17"
        android:layout_alignTop="@id/body_f16"
        android:layout_below="@+id/body_f14"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="22dp"
        android:layout_toRightOf="@+id/body_f27"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f18"
        android:layout_below="@+id/body_f26"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="96dp"
        android:layout_marginTop="18dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f19"
        android:layout_alignTop="@+id/body_f18"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="19dp"
        android:layout_toRightOf="@+id/body_f18"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f20"
        android:layout_below="@+id/body_f18"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="96dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f21"
        android:layout_alignTop="@+id/body_f20"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/body_f20"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f22"
        android:layout_below="@+id/body_f20"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="96dp"
        android:layout_marginTop="24dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f23"
        android:layout_alignTop="@id/body_f22"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/body_f22"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f24"
        android:layout_below="@+id/body_f22"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="96dp"
        android:layout_marginTop="40dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_f25"
        android:layout_alignTop="@+id/body_f24"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/body_f24"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b5"
        android:layout_below="@+id/body_b3"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="235dp"
        android:layout_marginTop="13dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b6"
        android:layout_alignTop="@+id/body_b5"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="14dp"
        android:layout_toRightOf="@+id/body_b5"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b7"
        android:layout_alignTop="@+id/body_b6"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/body_b6"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b8"
        android:layout_alignTop="@+id/body_b7"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="13dp"
        android:layout_toRightOf="@+id/body_b7"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b9"
        android:layout_below="@+id/body_b5"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="225dp"
        android:layout_marginTop="35dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b10"
        android:layout_alignTop="@+id/body_b9"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="23dp"
        android:layout_toRightOf="@+id/body_b9"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b11"
        android:layout_alignTop="@+id/body_b10"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/body_b10"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b12"
        android:layout_alignTop="@+id/body_b11"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="21dp"
        android:layout_toRightOf="@+id/body_b11"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b13"
        android:layout_below="@+id/body_b9"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="223dp"
        android:layout_marginTop="30dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b14"
        android:layout_alignTop="@+id/body_b13"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="22dp"
        android:layout_toRightOf="@+id/body_b13"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b15"
        android:layout_alignTop="@+id/body_b14"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/body_b14"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b16"
        android:layout_alignTop="@+id/body_b15"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="22dp"
        android:layout_toRightOf="@+id/body_b15"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b17"
        android:layout_below="@+id/body_b14"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="253dp"
        android:layout_marginTop="29dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b18"
        android:layout_alignTop="@+id/body_b17"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/body_b17"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b19"
        android:layout_below="@+id/body_b17"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="252dp"
        android:layout_marginTop="57dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b20"
        android:layout_alignTop="@+id/body_b19"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/body_b19"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b21"
        android:layout_below="@+id/body_b19"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="252dp"
        android:layout_marginTop="34dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />

    <ImageView
        android:id="@+id/body_b22"
        android:layout_alignTop="@+id/body_b21"
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/body_b21"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Это распространенный вопрос, о котором мы могли бы только дать совет.

Просто создайте представление xml. После этого вы можете сохранить переменные службы API в своем классе и решить, какие точки видны, а какие нет.

Удачи!

0 голосов
/ 06 февраля 2020

С трудом поняв ваш вопрос,

То, что вы хотите сделать, - это установить видимость некоторых ImageView с VISIBLE или INVISIBLE на основе некоторых данных, которые, как я полагаю, вы получили в JSON или любой формат. Один из способов добиться этого: сначала мы получаем наши данные и вручную устанавливаем id с ImageView с в вашем activity_*.xml файле.

Затем динамически обновляем видимость соответственно.

По вашему мнению:

<RelativeLayout
    android:layout_alignTop="@+id/pv_icon"
    android:layout_height="match_parent"
    android:layout_marginLeft="50dp"
    android:layout_toRightOf="@+id/view_pain_level"
    android:layout_width="match_parent">

    <ImageView
        android:id="@+id/B11"  <-- Notice here
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@mipmap/pain_position" />

    <ImageView
        android:id="@+id/B12" <-- Notice here
        android:layout_height="@dimen/body_height"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="16dp"
        android:layout_width="@dimen/body_width"
        android:src="@drawable/ic_circle_black_2dp" />


       .
       .
       .

</RelativeLayout>

затем в вашем Activity:

void setImageViews() {
    String data = getFromSomeComplicatedSource();
    String[] ids = data.split(",");

    for (String imageViewId : ids) {
        int resID = getResources().getIdentifier(imageViewId, "id", getPackageName()); // this will give R.id.ids[i]

        ImageView imageView = findViewById(resID);
        if (imageView != null) {
            imageView.setBackgroundColor(Color.RED);
            imageView.setVisibility(View.VISIBLE);
        }
    }
}

private String getFromSomeComplicatedSource() {
    // after getting data, convert it to String
    String data = "B11,B12,B22,F11,F22,F1,F2,F3";

    return data;
}

Таким образом, вы достигнете того, что хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...