Java 游标适配器不膨胀ListView:Android
您好,我正在尝试创建一个活动,其中我添加了一个搜索工具,用于在电话簿中搜索联系人,并在列表视图中列出所选联系人。然而,当我试图运行应用程序时,CursorAdapter并没有膨胀任何视图 这是我的密码:Java 游标适配器不膨胀ListView:Android,java,android,Java,Android,您好,我正在尝试创建一个活动,其中我添加了一个搜索工具,用于在电话簿中搜索联系人,并在列表视图中列出所选联系人。然而,当我试图运行应用程序时,CursorAdapter并没有膨胀任何视图 这是我的密码: public class FamilyAndFriends extends AppCompatActivity { Typeface mytypeface1; SearchView searchView; ListView contactlist; Cursor
public class FamilyAndFriends extends AppCompatActivity {
Typeface mytypeface1;
SearchView searchView;
ListView contactlist;
Cursor nameCursor;
CursorAdapter nameAdapter;
Uri nameUri;
public static final String projection[] = {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_family_and_friends);
TextView textView = (TextView) findViewById(R.id.textView9);
mytypeface1 = Typeface.createFromAsset(getAssets(), "Roboto-Light.ttf");
textView.setTypeface(mytypeface1);
Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar);
toolbar.setTitle("Friends & Family");
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
searchView = (SearchView) findViewById(R.id.searchView);
setupSearchView();
contactlist = (ListView) findViewById(R.id.listView);
contactlist.setAdapter(nameAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_user_info, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
break;
case R.id.next:
startActivity(new Intent(this, Settings.class));
break;
}
return true;
}
private void setupSearchView() {
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());
searchView.setSearchableInfo(searchableInfo);
searchView.setQueryRefinementEnabled(true);
searchView.setIconifiedByDefault(false);
}
@Override
protected void onNewIntent(Intent intent) {
if (ContactsContract.Intents.SEARCH_SUGGESTION_CLICKED.equals(intent.getAction()))
nameUri = intent.getData();
nameCursor = getContentResolver().query(nameUri, projection, null, null, null);
nameAdapter = new CursorAdapter(this, nameCursor, 0) {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.contact_listview, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView nameContact = (TextView) view.findViewById(R.id.contact_name);
String CONTACT_NAME = nameCursor.getString(nameCursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
nameContact.setText(CONTACT_NAME);
nameContact.setTypeface(mytypeface1);
}
};
}
}
有什么帮助吗???你在哪里调用
SearchView#setonquerytextener
?我没有调用setonquerytextener
。我有一个onNewIntent()方法,其中我使用了if(contacts contract.Intents.SEARCH\u SUGGESTION\u CLICKED.equals(intent.getAction())
@pskinkso setuponquerytextlinester
只有在先前创建了活动的情况下,onNewIntent()
方法才会启动,它的启动模式是singleTop
或singleTask
。你能在我的代码中发布设置onquerytexlistener
的代码吗@pskink