【发布时间】:2014-02-25 06:29:32
【问题描述】:
我正在创建一个多用户聊天应用程序。收件箱活动从我用于存储的 XML 中加载用户列表。我有一个问题,我希望当收件箱活动加载用户列表时,它还检查这些用户中的任何一个是否存在于电话簿中。如果有任何用户在电话簿中,那么它会在列表视图中加载该用户的图像。 我在一定程度上解决了我的问题,但我无法显示选定的用户图像。请给我一些提示如何做到这一点。提前谢谢你。
这是收件箱的快照
收件箱活动java:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.users_index);
listView=(ListView)findViewById(R.id.listview);
actionBar = getActionBar();
actionBar.setTitle("Inbox Messages");
//getNumber(this.getContentResolver());
getdata();
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView uname=(TextView)view.findViewById(R.id.sendername);
username = uname.getText().toString();
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("username", username);
startActivity(i);
}
});
}
private void getdata() {
try {
File fXmlFile = new File("/data/data/net.multiplesystem.nosms/Messeges/UserList.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("details");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String a=eElement.getElementsByTagName("name").item(0).getTextContent().toString();
userIndex.add(a);
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
setListAdapter();
}
private void setListAdapter(){
adapter = new ArrayAdapter<String>(this,R.layout.user_index_layout,R.id.sendername,userIndex);
listView.setAdapter(adapter);
registerForContextMenu(listView);
}
/*
public void getNumber(ContentResolver cr)
{
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
id = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
contactId = Long.parseLong(id);
System.out.println(".................."+phoneNumber);
System.out.println(".................."+name);
Number.add(phoneNumber);
}
phones.close();// close cursor
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.user_index_layout,R.id.sendername,Number);
listView.setAdapter(adapter);
setListAdapter();
}
*/
}
【问题讨论】:
-
有很多答案解释了如何根据您的要求使用 ListView。请浏览该网站,您一定会找到您需要的。
-
我搜索了很多,但找不到想要的。 :(
-
也许您可以发布一些代码来缩小问题范围,如果发布的回复没有回答您的问题 =)
-
抱歉回复晚了,我已经贴出代码请查收。