2017-01-12 12 views
-2

私は連絡先から電話をかけるプログラムを作り直すつもりです。私は最初にarraylistの連絡先をすべて取得し、arraylistのインデックスとしてrandomgeneratorメソッド呼び出しの連絡先を使用します。しかし、私はこのコードに問題があります。 arraylistで接触を取るのは完全なトリイングではありませんが、ボタンを押したときにアプリが終了します。どうして ?Androidのランダムな呼び出し側

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(); 


} 
} 

これはlogcat

01-12 15:34:52.846 3695から3695/com.example.uskudar.randomcaller E/AndroidRuntime:致命的な例外:メイン プロセス:com.example。親クラスまたは祖先でメソッドcallRandom(MainActivity)(View)を見つけることができませんでした。android:onClickのためのコンテキストviewクラスに定義されたonClick属性android.support.v7.widget.AppCompatButton with id 'button' android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod(AppCompatV iewInflater.java:327) android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:5610) android.viewにあります。 $ PerformClick.run(View.java:22260)の表示 android.os.Handler.handleCallback(Handler.java:751) (android.os.Handler.dispatchMessage(Handler.java:95) )はアンドロイドです。 Looper.loop(Looper.java:154) android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.inter com.android.internal.os.ZygoteInit.mainでnal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865) (ZygoteInit.java:755)

+0

クラッシュログキャストを投稿してください。 –

+1

だから、あなたはいつでもそれらを無作為に呼び出すことによってすべてのあなたの連絡先を退治したいですか?あなたの連絡先リストに載っていないのは幸運です! –

+0

とても面白い:)それはプロジェクトhomewokです – burakr9

答えて

0

あなたはコメントで掲示XMLはandroid:onClick="callRandom (MainActivity)"を言う、どのデフォルトのクリックリスナーは、MainActivityまたはその親クラスのメソッドpublic void callRandom (MainActivity)(View v)を検索します。これは適切なJava構文ではなく、これが問題の原因です。

関連する問題