Добавление содержимого списков массивов в текстовое представление с пустым текстом - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь отобразить номера телефонов каждой карты, вставленной в телефон, через приложение, которое я создаю, следующим образом

mSubscriptionManager = SubscriptionManager.from(context);
GetCarriorsInformation();
number = findViewById(R.id.phone_numbers);
for (int i=0; i < Numbers.size(); i++){
    number.append(number.getText() + Numbers.get(i) + " , ");
}

Это после получения телефонных номеров и добавления каждого к списку рассылки, как показано ниже

private void GetCarriorsInformation() {
    Numbers = new ArrayList<>();

    subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
    if (subInfoList.size() > 1) {
        isMultiSimEnabled = true;
    }

    for (SubscriptionInfo subscriptionInfo : subInfoList) {
        Numbers.add(subscriptionInfo.getNumber());
    }
}

Это работает без ошибок, но textView показывает только '' Что я могу делать не так?

Вот код для входа MainActivity.java

package com.otemainc.securesoccialmedia;

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private Context context;
    private SubscriptionManager mSubscriptionManager;

    public static boolean isMultiSimEnabled = false;
    public static String defaultSimName;

    public static List<SubscriptionInfo> subInfoList;
    public static ArrayList<String> Numbers;
    TextView number;

    @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        setContentView(R.layout.activity_main);
        mSubscriptionManager = SubscriptionManager.from(context);
        GetCarriorsInformation();
        number = findViewById(R.id.phone_numbers);
        for(int i=0; i < Numbers.size(); i++) {
            number.append(number.getText() + Numbers.get(i) + " , ");
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
    private void GetCarriorsInformation() {
        Numbers = new ArrayList<>();

        subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
        if (subInfoList.size() > 1) {
            isMultiSimEnabled = true;
        }

        for (SubscriptionInfo subscriptionInfo : subInfoList) {
            Numbers.add(subscriptionInfo.getNumber());
        }
    }
}

Я также добавил эту строку в файл манифеста

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

1 Ответ

0 голосов
/ 13 мая 2018

Попробуйте установить точку останова, чтобы проверить, есть ли какие-либо значения в subscriptionInfo.В противном случае попробуйте использовать:

 Numbers.add(String.valueOf(subscriptionInfo.getNumber()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...