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);
}
}
你是说联系人有重复的吗?