Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在没有图像的联系人上显示自定义图标?_Android_Android Studio_Android Fragments_Android Contacts - Fatal编程技术网

Android 如何在没有图像的联系人上显示自定义图标?

Android 如何在没有图像的联系人上显示自定义图标?,android,android-studio,android-fragments,android-contacts,Android,Android Studio,Android Fragments,Android Contacts,我想在左边显示联系人的图像列表,我可以用下面的代码实现这一点,但我想知道如果没有为该联系人设置图像,如何在左边显示自定义图标 我在drawables中有我的自定义图标,名为“my_icon” 我显示联系人列表的片段 public class FragmentContacts extends Fragment implements LoaderManager.LoaderCallbacks<Cursor>{ ImageView imageView; pr

我想在左边显示联系人的图像列表,我可以用下面的代码实现这一点,但我想知道如果没有为该联系人设置图像,如何在左边显示自定义图标

我在drawables中有我的自定义图标,名为“my_icon”

我显示联系人列表的片段

    public class FragmentContacts extends Fragment
    implements LoaderManager.LoaderCallbacks<Cursor>{
    ImageView imageView;
    private ListView lv_ContactList;
    private SimpleCursorAdapter mCursorAdapter;
    private static final String DISPLAY_NAME = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB                         
    ? ContactsContract.Contacts.DISPLAY_NAME_PRIMARY : ContactsContract.Contacts.DISPLAY_NAME;

    private static final String[] contactsColumns = {    ContactsContract.Contacts._ID,         
    ContactsContract.Contacts.LOOKUP_KEY, DISPLAY_NAME, ContactsContract.Contacts.PHOTO_URI    };
    private final String contactsFilter = "(" +ContactsContract.Contacts.HAS_PHONE_NUMBER+ "='1') AND 
    (" + ContactsContract.Contacts.IN_VISIBLE_GROUP + "='1')";
    private final String contactsSortOrder = DISPLAY_NAME + " COLLATE LOCALIZED ASC";

    private final static String[] listDisplayColumns = { DISPLAY_NAME, 
    ContactsContract.Contacts.PHOTO_URI   };
    private final static int[] listDataViewIDs = { R.id.contact_name, R.id.imgContact };

    String[] mSelectionArgs;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    {
    View view = inflater.inflate(R.layout.frag_contacts, null);
    lv_ContactList = (ListView)view.findViewById(R.id.lv_ContactList);
    return view;
    }

    @Override
    public void onResume(){
    super.onResume();

    mCursorAdapter= new SimpleCursorAdapter( getActivity(), R.layout.list_row_contact, null,         
    listDisplayColumns, listDataViewIDs, 0);
    lv_ContactList.setAdapter(mCursorAdapter);
    getLoaderManager().initLoader(0, null, this);
    }

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args ) {
    if(mSelectionArgs == null)
        return new CursorLoader( getActivity(), ContactsContract.Contacts.CONTENT_URI,         
     contactsColumns, contactsFilter, null, contactsSortOrder );
    else
        return new CursorLoader( getActivity(), ContactsContract.Contacts.CONTENT_URI,         
     contactsColumns, contactsFilter + " AND (" + DISPLAY_NAME+" LIKE ?)", mSelectionArgs, 
      contactsSortOrder );
       }
    @Override
    public void onLoadFinished( Loader<Cursor> loader, Cursor data ) {
    mCursorAdapter.swapCursor(data);
    }
    @Override
    public void onLoaderReset( Loader<Cursor> loader ) {
    mCursorAdapter.swapCursor(null);
    }
    }
公共类碎片contacts扩展了碎片
实现LoaderManager.LoaderCallbacks{
图像视图图像视图;
私有ListView lv_联系人列表;
私人SimpleCursorAdapter mCursorAdapter;
私有静态最终字符串显示\u NAME=Build.VERSION.SDK\u INT>=Build.VERSION\u code.html
?Contacts contract.Contacts.DISPLAY_NAME_主:Contacts contract.Contacts.DISPLAY_NAME;
私有静态最终字符串[]contactsColumns={ContactsContract.Contacts.\u ID,
ContactsContract.Contacts.LOOKUP_键,显示_名称,ContactsContract.Contacts.PHOTO_URI};
私人最终字符串contactsFilter=“(“+ContactsContract.Contacts.HAS_PHONE_NUMBER+”=“1”)和
(“+Contacts contract.Contacts.IN_VISIBLE_GROUP+”='1')”;
私有最终字符串ContactsOrder=显示\u名称+“整理本地化ASC”;
私有最终静态字符串[]listDisplayColumns={DISPLAY\u NAME,
Contacts contract.Contacts.PHOTO_URI};
私有最终静态int[]ListDataViewId={R.id.contact_name,R.id.imgContact};
字符串[]mSelectionArgs;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
视图=充气机。充气(R.layout.frag_触点,空);
lv_ContactList=(ListView)view.findViewById(R.id.lv_ContactList);
返回视图;
}
@凌驾
恢复时公开作废(){
super.onResume();
mCursorAdapter=new SimpleCursorAdapter(getActivity(),R.layout.list_row_contact,null,
listDisplayColumns,ListDataViewId,0);
lv_ContactList.setAdapter(mCursorAdapter);
getLoaderManager().initLoader(0,null,this);
}
@凌驾
公共加载器onCreateLoader(int-id,Bundle-args){
if(mSelectionArgs==null)
返回新的游标装入器(getActivity(),Contacts contract.Contacts.CONTENT\u URI,
Contacts列、contactsFilter、null、ContactsOrder);
其他的
返回新的游标装入器(getActivity(),Contacts contract.Contacts.CONTENT\u URI,
contactsColumns、contactsFilter+“和(“+DISPLAY_NAME+“LIKE?”)、mSelectionArgs、,
接触器;
}
@凌驾
public void onLoadFinished(加载器、光标数据){
mCursorAdapter.swapCursor(数据);
}
@凌驾
公共void onLoaderReset(加载器){
mCursorAdapter.swapCursor(空);
}
}

将您的自定义图像导入到绘图表中。
如果联系人照片的uri不存在,则上载自定义图像

将自定义图像导入到绘图中。
如果联系人照片的uri不存在,则上载自定义图像

您可以将自定义图像添加到绘图中。一旦有了它,就转到布局,在ImageView中,可以将其设置为src your image。图像将一直显示,直到您设置另一个图像

在这个示例ImageView中,我使用“@drawable/icondumy”作为加载或空时的图像

<ImageView
    android:id="@+id/imageUserIconHome"
    android:src="@drawable/icondummy"
    android:layout_width="35dp"
    android:layout_height="35dp" />

您可以将自定义图像添加到绘图表中。一旦有了它,就转到布局,在ImageView中,可以将其设置为src your image。图像将一直显示,直到您设置另一个图像

在这个示例ImageView中,我使用“@drawable/icondumy”作为加载或空时的图像

<ImageView
    android:id="@+id/imageUserIconHome"
    android:src="@drawable/icondummy"
    android:layout_width="35dp"
    android:layout_height="35dp" />

我已经弄明白了, 刚用了
android:background=“@dravable/my_icon”
而不是
android:src=“@dravable/my_icon”
,它显示了它的魔力

<ImageView
android:id="@+id/my_icon"
android:layout_width="35dip"
android:background="@drawable/chaticon"
android:clickable="true"
android:layout_height="35dip"
android:layout_gravity="center"
android:layout_margin="5dip" />

我已经弄明白了, 刚用了
android:background=“@dravable/my_icon”
而不是
android:src=“@dravable/my_icon”
,它显示了它的魔力

<ImageView
android:id="@+id/my_icon"
android:layout_width="35dip"
android:background="@drawable/chaticon"
android:clickable="true"
android:layout_height="35dip"
android:layout_gravity="center"
android:layout_margin="5dip" />


请将代码添加为文本,而不是图像,这样人们更容易验证您的答案。不知道为什么,但事实并非如此working@UtaibaNaqshbandi你有错误吗?还是仍然是空的?没有错误,只是空的请将代码添加为文本,而不是图像,这样人们更容易验证您的答案。不知道为什么,但事实并非如此working@UtaibaNaqshbandi你有错误吗?还是仍然是空的?没有错,只是空的