2017-01-12 5 views
-2

Ich bin triying, um ein Programm zu machen, das jemand von meinen Kontakten ramdomly anruft und ich versuche, zuerst alle meine Kontakte in einer arraylist zu nehmen und Randomgenerator Methode Anrufkontakte als ihr Index in meiner arraylist zu verwenden. Aber ich habe ein Problem mit diesem Code. Es ist nicht vollständig, nur triyng, um Kontakte in einer Arraylist zu nehmen, aber wenn ich den Knopf drücke, app schließt sich. Warum ?Android zufälliger Anrufer

package com.example.uskudar.randomcaller; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.content.*; 
import android.database.Cursor; 
import java.util.ArrayList; 
import android.provider.ContactsContract; 

import android.util.Log; 

public class MainActivity extends AppCompatActivity{ 



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

} 
Context context; 

ArrayList<String> contacts = new ArrayList<>(); 

public void addContacts(){ 

    //to store name-number pair 
    String obj = new String(); 

    try { 
     Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 

     while (phones.moveToNext()) { 
      String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      obj = phoneNumber; 
      contacts.add(obj); 

      Log.e("Contact list ", " "+contacts); 
     } 
     phones.close(); 
    } 
    catch (Exception e){ 
     e.printStackTrace(); 
    } 
} 

public void callRandom(View view){ 

    addContacts(); 


} 
} 

und dies ist der logcat

01-12 15: 34: 52,846 3695-3695/com.example.uskudar.randomcaller E/Android Runtime: fatal EXCEPTION: main Prozess: com.example. uskudar.randomcaller, PID: 3695 java.lang.IllegalStateException: Methode callRandom (MainActivity) (View) konnte nicht in einem übergeordneten oder übergeordneten Kontext für android: onClick-Attribut gefunden werden, das in der View-Klasse android.support.v7.widget.AppCompatButton mit definiert wurde ID 'Schaltfläche' bei android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod (AppCompatV iewInflater.java:327) bei android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater.java:284) bei android.view.View.performClick (View.java:5610) bei android.view. Sehen $ PerformClick.run (View.java:22260) bei android.os.Handler.handleCallback (Handler.java:751) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os. Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.java:6077) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.inter nal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)

+0

Veröffentlichen Sie den Crash-Logcat. –

+1

Sie möchten also alle Ihre Kontakte langweilen, indem Sie sie ab und zu anrufen ?! Ich bin glücklich, nicht in Ihrer Kontaktliste zu sein, dann! –

+0

So lustig :) es ist ein Projekt homewok – burakr9

Antwort

0

Die xml Sie in den Kommentaren gepostet sagt android:onClick="callRandom (MainActivity)", die bewirkt, dass der standardmäßige Klick-Listener in MainActivity oder seinen übergeordneten Klassen nach einer Methode public void callRandom (MainActivity)(View v) sucht. Möglicherweise stellen Sie fest, dass dies nicht die richtige Java-Syntax ist, was wiederum die Ursache für Ihr Problem ist.