gpt4 book ai didi

java - ViewBinder - null 对象引用/在 SwipeRefresh 上也不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 13:20:12 26 4
gpt4 key购买 nike

我正在使用 ViewBinder,到目前为止已成功将其用于 SimpleDateFormat,现在我正在尝试同时获取 Contect 名称而不是数字。

1. 下面的代码显示不会将号码更新为联系人姓名,但适用于日期格式。我该如何解决这个问题?

2. 我尝试在 swiperefresh 上再次添加 View 绑定(bind)器,但刷新后它没有格式化我的日期?

任何帮助将不胜感激:)

这是我的代码:

        adapter1.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View arg0, Cursor arg1, int arg2) {

if (arg0.getId() == R.id.lblNumber){
String HeadNum = arg1.getString(arg2);
Uri nameuri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(HeadNum));
Cursor c = getActivity().getContentResolver().query(nameuri, new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null);
String ContactName = "null";
if (c.moveToFirst()){ ContactName = c.getString(c.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME)); }
((TextView)arg0).setText(ContactName);
}

if(arg0.getId() == R.id.lblDate){
String date = arg1.getString(arg2);
Long timestamp = Long.parseLong(date);
String dateString = sdf.format(new Date(timestamp));
((TextView)arg0).setText(dateString);
return true;
}else
return false;
}
});
lvMsgList.setAdapter(adapter1);

这是 OnRefresh 中的代码:

phmsgSwipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener(){
@Override
public void onRefresh(){
Uri inboxURI = Uri.parse("content://mms-sms/conversations");
Cursor b = getActivity().getContentResolver().query(inboxURI, new String[]{"*"}, null, null, "normalized_date desc");
adapter1 = new SimpleCursorAdapter(getActivity().getApplicationContext(), R.layout.row, b,
new String[]{"body", "date", "address", "thread_id"},
new int[]{R.id.lblMsg, R.id.lblDate, R.id.lblNumber, R.id.lblID}, 0);
adapter1.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View arg0, Cursor arg1, int arg2) {
if(arg0.getId() == R.id.lblDate){
String date = arg1.getString(arg2);
Long timestamp = Long.parseLong(date);
String dateString = sdf.format(new Date(timestamp));
((TextView)arg0).setText(dateString);
return true;
}else
return false;
}
});
lvMsgList.setAdapter(adapter1);
phmsgSwipe.setRefreshing(false);
}
});

最佳答案

我通过改变解决了这个问题

((TextView)arg0).setText(ContactName);

if (ContactName!=null){
((TextView)arg0).setText(ContactName);
return true;}else return false;

关于java - ViewBinder - null 对象引用/在 SwipeRefresh 上也不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com