0

我正在使用 autoCompleteTextView 加载联系人。没有错误,也不会崩溃。但是 autocompleteTextview 似乎没有出现任何东西。我将发布我的代码和 logcat。

代码:- 包 com.droidnova.android.samples;

   import android.app.Activity;
   import android.content.ContentResolver;
   import android.content.Context;
   import android.database.Cursor;
   import android.net.Uri;
   import android.os.Bundle;
   import android.provider.Contacts;
   import android.provider.Contacts.People;
   import android.provider.SyncStateContract.Constants;
   import android.view.LayoutInflater;
   import android.view.View;
   import android.view.ViewGroup;
  import android.widget.AutoCompleteTextView;
  import android.widget.CursorAdapter;
  import android.widget.Filterable;
  import android.widget.LinearLayout;
   import android.widget.TextView;

   public class AutoComplete extends Activity {

private static TextView mName;
private static TextView mNumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.button);

   ContentResolver content = getContentResolver();
    Cursor cursor = content.query(People.CONTENT_URI,
            PEOPLE_PROJECTION, People.NAME+"IS NOT NULL AND" +
            People.NUMBER_KEY+"IS NOT NULL",null,People.DEFAULT_SORT_ORDER);
    ContactListAdapter adapter = new ContactListAdapter(this, cursor);

    AutoCompleteTextView textView = (AutoCompleteTextView)
            findViewById(R.id.AutoCompleteTextView01);
    textView.setAdapter(adapter);
    textView.setHint("type name");
}

// XXX compiler bug in javac 1.5.0_07-164, we need to implement Filterable
// to make compilation work
   public static class ContactListAdapter extends CursorAdapter implements Filterable {
     public ContactListAdapter(Context context, Cursor c) {
        super(context, c);
        mContent = context.getContentResolver();
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        final LinearLayout ret = new LinearLayout(context);
        final LayoutInflater inflater = LayoutInflater.from(context);
        mName = (TextView) inflater.inflate(
                android.R.layout.simple_dropdown_item_1line, parent, false);
        mNumber=(TextView) inflater.inflate(
                android.R.layout.simple_dropdown_item_1line, parent, false);
        int nameIdx = cursor.getColumnIndexOrThrow(People.NAME);
        int numberIdx = cursor.getColumnIndex(People.NUMBER);

        String name = cursor.getString(nameIdx);
        String number = cursor.getString(numberIdx);

        mName.setText(name);
        mNumber.setText(number);
        return ret;



    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
         int nameIdx = cursor.getColumnIndexOrThrow(People.NAME);
         int numberIdx = cursor.getColumnIndex(People.NUMBER);

         String name = cursor.getString(nameIdx);
         String number = cursor.getString(numberIdx);
         ((TextView) ((LinearLayout) view).getChildAt(0)).setText(name);
         LinearLayout horizontal = (LinearLayout) ((LinearLayout) view).getChildAt(1);
         ((TextView) horizontal.getChildAt(0)).setText(number);



    }

    @Override
    public String convertToString(Cursor cursor) {
        int numCol = cursor.getColumnIndexOrThrow(People.NUMBER);
        String number = cursor.getString(numCol);
        return number;

    }

    @Override
    public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
        if (getFilterQueryProvider() != null) { return getFilterQueryProvider().runQuery(constraint); }

        StringBuilder buffer = null;
        String[] args = null;
        if (constraint != null) {
            buffer = new StringBuilder();
            buffer.append(People.NAME + " IS NOT NULL AND " + People.NUMBER_KEY + " IS NOT NULL AND ");
            buffer.append("UPPER(");
            buffer.append(People.NAME);
            buffer.append(") GLOB ?");
            args = new String[] { constraint.toString().toUpperCase() + "*" };
        }

        return mContent.query(People.CONTENT_URI,PEOPLE_PROJECTION, buffer == null ? null : buffer
                .toString(), args, People.DEFAULT_SORT_ORDER);
    }



    private ContentResolver mContent;
}

  private static final String[] PEOPLE_PROJECTION = new String[] {
     People.NAME,
    People._ID,
    People.NUMBER,
};

}

这是我的日志:

12-14 07:26:46.711: INFO/ActivityManager(59): Start proc com.droidnova.android.samples  for activity com.droidnova.android.samples/.SelectContact: pid=250 uid=10025 gids={1015}
  12-14 07:26:46.721: ERROR/AndroidRuntime(244): ERROR: thread attach failed
  12-14 07:26:46.761: DEBUG/dalvikvm(244): LinearAlloc 0x0 used 639500 of 5242880 (12%)
  12-14 07:26:46.941: DEBUG/ddm-heap(250): Got feature list request
12-14 07:26:47.091: INFO/ARMAssembler(59): generated scanline__00000177:03515104_00000001_00000000 [ 73 ipp] (95 ins) at [0x49e2e8:0x49e464] in 1288362 ns
12-14 07:26:47.111: WARN/ActivityThread(250): Application com.droidnova.android.samples is waiting for the debugger on port 8100...
12-14 07:26:47.141: INFO/System.out(250): Sending WAIT chunk
12-14 07:26:47.151: INFO/dalvikvm(250): Debugger is active
12-14 07:26:47.211: INFO/ARMAssembler(59): generated scanline__00000077:03545404_00000004_00000000 [ 47 ipp] (67 ins) at [0x4a2798:0x4a28a4] in 571302 ns
12-14 07:26:47.351: INFO/System.out(250): Debugger has connected
12-14 07:26:47.361: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:47.561: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:47.761: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:47.781: INFO/ARMAssembler(59): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x393188:0x393244] in 604406 ns
12-14 07:26:47.801: INFO/ARMAssembler(59): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x393dd0:0x393f98] in 666356 ns
12-14 07:26:47.961: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:48.161: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:48.371: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:48.571: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:48.782: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:48.981: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:49.181: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:49.391: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:49.593: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:49.791: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:49.996: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:50.201: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:50.401: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:50.601: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:50.801: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:51.012: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:51.216: INFO/System.out(250): waiting for debugger to settle...
12-14 07:26:51.421: INFO/System.out(250): debugger has settled (1459)
12-14 07:26:51.971: WARN/Resources(250): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f060000}
12-14 07:26:52.931: INFO/ActivityManager(59): Displayed activity com.droidnova.android.samples/.SelectContact: 6292 ms (total 6292 ms)
12-14 07:26:58.051: DEBUG/ViewFlipper(99): updateRunning() mVisible=true, mStarted=false, mUserPresent=true, mRunning=false
12-14 07:26:58.051: DEBUG/ViewFlipper(99): updateRunning() mVisible=true, mStarted=false, mUserPresent=true, mRunning=false
12-14 07:26:58.611: DEBUG/dalvikvm(105): GC freed 2632 objects / 154776 bytes in 515ms
12-14 07:27:02.341: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:02.351: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:02.351: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:06.391: DEBUG/dalvikvm(170): GC freed 726 objects / 53656 bytes in 106ms
12-14 07:27:26.941: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:26.951: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:26.951: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:30.351: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:30.351: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:30.351: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:33.401: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:33.401: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:33.401: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:37.211: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:37.211: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:37.211: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:38.371: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:38.371: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:38.381: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:39.351: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:39.351: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:39.351: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:39.931: ERROR/MediaPlayerService(30):   error: -2
12-14 07:27:39.931: ERROR/MediaPlayer(59): Unable to to create media player
12-14 07:27:39.941: WARN/AudioService(59): MediaPlayer IOException: java.io.IOException: setDataSource failed.: status=0x80000000
12-14 07:27:49.261: DEBUG/AndroidRuntime(267): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
12-14 07:27:49.271: DEBUG/AndroidRuntime(267): CheckJNI is ON
12-14 07:27:49.491: DEBUG/AndroidRuntime(267): --- registering native functions ---
12-14 07:27:49.891: DEBUG/ddm-heap(267): Got feature list request
12-14 07:27:50.431: DEBUG/AndroidRuntime(267): Shutting down VM
12-14 07:27:50.431: DEBUG/dalvikvm(267): DestroyJavaVM waiting for non-daemon threads to exit
12-14 07:27:50.431: DEBUG/dalvikvm(267): DestroyJavaVM shutting VM down
12-14 07:27:50.441: DEBUG/dalvikvm(267): HeapWorker thread shutting down
12-14 07:27:50.441: DEBUG/dalvikvm(267): HeapWorker thread has shut down
12-14 07:27:50.451: ERROR/AndroidRuntime(267): ERROR: thread attach failed
12-14 07:27:50.451: DEBUG/jdwp(267): JDWP shutting down net...
12-14 07:27:50.451: INFO/dalvikvm(267): Debugger has detached; object registry had 1 entries
12-14 07:27:50.471: DEBUG/dalvikvm(267): VM cleaning up
12-14 07:27:50.491: DEBUG/dalvikvm(267): LinearAlloc 0x0 used 629532 of 5242880 (12%)
12-14 07:27:50.981: DEBUG/AndroidRuntime(275): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
12-14 07:27:50.981: DEBUG/AndroidRuntime(275): CheckJNI is ON
12-14 07:27:51.251: DEBUG/AndroidRuntime(275): --- registering native functions ---
12-14 07:27:51.641: DEBUG/ddm-heap(275): Got feature list request
12-14 07:27:52.222: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.droidnova.android.samples/.SelectContact }
12-14 07:27:52.242: DEBUG/AndroidRuntime(275): Shutting down VM
12-14 07:27:52.252: DEBUG/dalvikvm(275): DestroyJavaVM waiting for non-daemon threads to exit
12-14 07:27:52.252: DEBUG/dalvikvm(275): DestroyJavaVM shutting VM down
12-14 07:27:52.252: DEBUG/dalvikvm(275): HeapWorker thread shutting down
12-14 07:27:52.262: DEBUG/dalvikvm(275): HeapWorker thread has shut down
12-14 07:27:52.262: ERROR/AndroidRuntime(275): ERROR: thread attach failed
12-14 07:27:52.272: DEBUG/jdwp(275): JDWP shutting down net...
12-14 07:27:52.272: INFO/dalvikvm(275): Debugger has detached; object registry had 1 entries
12-14 07:27:52.292: DEBUG/dalvikvm(275): VM cleaning up
12-14 07:27:52.331: DEBUG/dalvikvm(275): LinearAlloc 0x0 used 639500 of 5242880 (12%)
4

1 回答 1

0

您使用的方法看起来很奇怪。看看我之前提出的问题

如何像 Android 默认 SMS Application 一样实现 MultiAutoCompeleteTextView?

于 2010-12-21T13:25:21.457 回答