Java 我想让短信应用程序我有列表视图,有谁发短信给我,但名称是重复的人数

Java 我想让短信应用程序我有列表视图,有谁发短信给我,但名称是重复的人数,java,android-studio,listview,arraylist,sms,Java,Android Studio,Listview,Arraylist,Sms,我想让短信应用程序我有列表视图,有谁发短信给我,但名称是重复的人数 我的代码是 public class MainActivity extends AppCompatActivity { Cursor cursor; ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

我想让短信应用程序我有列表视图,有谁发短信给我,但名称是重复的人数 我的代码是

public class MainActivity extends AppCompatActivity {
        Cursor cursor;
        ListView listView;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    listView=findViewById(R.id.listview);
    ArrayList<String> contacts =new ArrayList<>();
    ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,contacts);
    listView.setAdapter(arrayAdapter);

    cursor = getContentResolver().query(Uri.parse("content://sms"), null, null,null,null);
    cursor.moveToFirst();
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_SMS}, PackageManager.PERMISSION_GRANTED);
    String address = cursor.getString(cursor.getColumnIndex("address"));
        String body  = cursor.getString(cursor.getColumnIndex("body"));
            cursor.moveToFirst();
            while(cursor.moveToNext()){
                contacts.add("from: "+cursor.getString(cursor.getColumnIndex("address"))
+"\n"+cursor.getString(cursor.getColumnIndex("body")));

                cursor.moveToNext();
            }
            }
        }
public类MainActivity扩展了AppCompatActivity{
光标;
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=findViewById(R.id.listView);
ArrayList联系人=新建ArrayList();
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,contacts);
setAdapter(arrayAdapter);
cursor=getContentResolver().query(Uri.parse(“content://sms)、空、空、空、空);
cursor.moveToFirst();
ActivityCompat.requestPermissions(MainActivity.this,新字符串[]{Manifest.permission.READ_SMS},PackageManager.permission_-grated);
字符串地址=cursor.getString(cursor.getColumnIndex(“地址”);
String body=cursor.getString(cursor.getColumnIndex(“body”);
cursor.moveToFirst();
while(cursor.moveToNext()){
contacts.add(“发件人:”+cursor.getString(cursor.getColumnIndex(“地址”))
+“\n”+cursor.getString(cursor.getColumnIndex(“body”));
cursor.moveToNext();
}
}
}
如果我删除了
+“\n”+cursor.getString(cursor.getColumnIndex(“body”)
从while循环中,我将得到发短信给我的所有人的号码
如果有人多次发送我,他的号码将被重复多次

我应该怎么做才能在列表视图中显示每个数字中的一个


希望大家理解

将while循环更改为

while (cursor.moveToNext()) {
                String x = cursor.getString(cursor.getColumnIndex("address"));
                cursor.moveToNext();
            if (!check.contains(x)){
                contacts.add(x);
            }
        }

你是说联系人有重复的吗?