android - Why am I getting the message 'Youractivity.java is not an activity subclass or alias' -


i created own android project , cut , pasted code exercise:

http://androidexample.com/show_phone_contacts_in_autocomplete_suggestions_-_android_example%20/index.php?view=article_discription&aid=106&aaid=128#

when build project no errors or warnings. when run project window error:

enter image description here

annoyingly, can't make window smaller, can't click of buttons. cick 'x' @ top, close it.

here's project structure:

enter image description here

where getting 'autocompletemain' from? (note small c) class named autocompletemain. help.

and have activity included in android manifest, in case you're wondering:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.androidexample.autocompleteedittext"     android:versioncode="1"     android:versionname="1.0" >      <uses-permission android:name="android.permission.read_phone_state"></uses-permission>     <uses-permission android:name="android.permission.read_contacts" />      <uses-sdk         android:minsdkversion="8"         android:targetsdkversion="8" />      <application         android:allowbackup="true"         android:icon="@mipmap/ic_launcher"         android:label="@string/app_name"         android:theme="@style/apptheme" >         <activity             android:name="com.example.chris.dialler.autocompletemain"             android:label="@string/app_name"  >             <intent-filter>                 <action android:name="android.intent.action.main" />                  <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>     </application> 

and here's code of class, autocompletemain.java :

(one thing notice, in class, phonenumber.tostring() , name.tostring() highlighted, saying they're redundant. don't know if that's cause of problem)

package com.example.chris.dialler;  import java.util.arraylist; import android.app.activity; import android.content.contentresolver; import android.database.cursor; import android.os.bundle; import android.provider.contactscontract; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.view.inputmethod.inputmethodmanager; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.autocompletetextview; import android.widget.button; import android.widget.edittext; import android.widget.toast; import android.widget.adapterview.onitemclicklistener; import android.widget.adapterview.onitemselectedlistener; import com.androidexample.autocompleteedittext.r;  public class autocompletemain extends activity implements  onitemclicklistener, onitemselectedlistener  {      // initialize variables      autocompletetextview textview=null;     private arrayadapter<string> adapter;      // store contacts values in these arraylist     public static arraylist<string> phonevaluearr = new arraylist<string>();     public static arraylist<string> namevaluearr = new arraylist<string>();      edittext tonumber=null;     string tonumbervalue="";       /** called when activity first created. */     @override     public void oncreate(bundle bundle) {         super.oncreate(bundle);          setcontentview(r.layout.autocomplete_main);          final button send = (button) findviewbyid(r.id.send);          // initialize autocompletetextview values          textview = (autocompletetextview) findviewbyid(r.id.tonumber);          //create adapter         adapter = new arrayadapter<string>                 (this, android.r.layout.simple_dropdown_item_1line, new arraylist<string>());         textview.setthreshold(1);          //set adapter autocompletetextview         textview.setadapter(adapter);         textview.setonitemselectedlistener(this);         textview.setonitemclicklistener(this);          // read contact data , add data arrayadapter         // arrayadapter used autocompletetextview          readcontactdata();           /********** button click pass textview object ***********/         send.setonclicklistener(btnaction(textview));       }      private onclicklistener btnaction(final autocompletetextview tonumber) {         return new onclicklistener() {              public void onclick(view v) {                  string namesel = "";                 namesel = tonumber.gettext().tostring();                   final string tonumber = tonumbervalue;                   if (tonumber.length() == 0 ) {                     toast.maketext(getbasecontext(), "please fill phone number",                             toast.length_short).show();                 }                 else                 {                     toast.maketext(getbasecontext(), namesel+" : "+tonumbervalue,                             toast.length_long).show();                 }              }         };     }       // read phone contact name , phone numbers      private void readcontactdata() {          try {              /*********** reading contacts name , number **********/              string phonenumber = "";             contentresolver cr = getbasecontext()                     .getcontentresolver();              //query contact name              cursor cur = cr                     .query(contactscontract.contacts.content_uri,                             null,                             null,                             null,                             null);              // if data data found in contacts             if (cur.getcount() > 0) {                  log.i("autocompletecontacts", "reading   contacts........");                  int k=0;                 string name = "";                  while (cur.movetonext())                 {                      string id = cur                             .getstring(cur                                     .getcolumnindex(contactscontract.contacts._id));                     name = cur                             .getstring(cur                                     .getcolumnindex(contactscontract.contacts.display_name));                      //check contact have phone number                     if (integer                             .parseint(cur                                     .getstring(cur                                             .getcolumnindex(contactscontract.contacts.has_phone_number))) > 0)                     {                          //create query phone number contact id                         cursor pcur = cr                                 .query(contactscontract.commondatakinds.phone.content_uri,                                         null,                                         contactscontract.commondatakinds.phone.contact_id                                                 + " = ?",                                         new string[] { id },                                         null);                         int j=0;                          while (pcur                                 .movetonext())                         {                             // multiple data                             if(j==0)                             {                                 // phone number                                 phonenumber =""+pcur.getstring(pcur                                         .getcolumnindex(contactscontract.commondatakinds.phone.number));                                  // add contacts names adapter                                 adapter.add(name);                                  // add arraylist names adapter                                 phonevaluearr.add(phonenumber.tostring());                                 namevaluearr.add(name.tostring());                                  j++;                                 k++;                             }                         }  // end while loop                         pcur.close();                     } // end if                  }  // end while loop              } // end cursor value check             cur.close();           } catch (exception e) {             log.i("autocompletecontacts","exception : "+ e);         }       }      @override     public void onitemselected(adapterview<?> arg0, view arg1, int position,                                long arg3) {         // todo auto-generated method stub         //log.d("autocompletecontacts", "onitemselected() position " + position);     }      @override     public void onnothingselected(adapterview<?> arg0) {         // todo auto-generated method stub          inputmethodmanager imm = (inputmethodmanager) getsystemservice(                 input_method_service);         imm.hidesoftinputfromwindow(getcurrentfocus().getwindowtoken(), 0);      }      @override     public void onitemclick(adapterview<?> arg0, view arg1, int arg2, long arg3) {         // todo auto-generated method stub          // array index value selected name         int = namevaluearr.indexof(""+arg0.getitematposition(arg2));          // if name exist in name arraylist         if (i >= 0) {              // phone number             tonumbervalue = phonevaluearr.get(i);              inputmethodmanager imm = (inputmethodmanager) getsystemservice(                     input_method_service);             imm.hidesoftinputfromwindow(getcurrentfocus().getwindowtoken(), 0);              // show alert             toast.maketext(getbasecontext(),                     "position:"+arg2+" name:"+arg0.getitematposition(arg2)+" number:"+tonumbervalue,                     toast.length_long).show();              log.d("autocompletecontacts",                     "position:"+arg2+" name:"+arg0.getitematposition(arg2)+" number:"+tonumbervalue);          }      }      protected void onresume() {         super.onresume();     }      protected void ondestroy() {         super.ondestroy();     }  } 

phonenumber , name strings there is, , unnecessary, try , convert them strings. in regards main question, have had annoying problems in past , either try syncing gradle or rebooting android studio.


Comments

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -