Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序在传输数据时崩溃_Java_Android - Fatal编程技术网

Java 应用程序在传输数据时崩溃

Java 应用程序在传输数据时崩溃,java,android,Java,Android,这是我的代码: public class MainActivity extends AppCompatActivity { ListView listView ; ArrayList<String> StoreContacts, id; Bundle bundle; ArrayAdapter<String> arrayAdapter ; Cursor cursor; Intent intent; String n

这是我的代码:

public class MainActivity extends AppCompatActivity {

    ListView listView ;

    ArrayList<String> StoreContacts, id;
    Bundle bundle;
    ArrayAdapter<String> arrayAdapter ;
    Cursor cursor;
    Intent intent;
    String name, phonenumber ;
    public  static final int RequestPermissionCode  = 1 ;

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

        listView = (ListView)findViewById(R.id.listview1);



        StoreContacts = new ArrayList<String>();

        id = new ArrayList<String>();

        EnableRuntimePermission();



                GetContactsIntoArrayList();

                arrayAdapter = new ArrayAdapter<String>(
                        MainActivity.this,
                        R.layout.contact_items_listview,
                        R.id.textView, StoreContacts
                );

                listView.setAdapter(arrayAdapter);




        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {



                bundle =new Bundle();

                /*SharedPreferences.Editor editor=getSharedPreferences("Suyash",MODE_PRIVATE).edit();

                editor.putString("ID",id.get(i));

                editor.apply();*/

                intent = new Intent(MainActivity.this, SingleContact.class);

                bundle.putString("ID",id.get(i));

                intent.putExtra("ID",id.get(i));

                startActivity(intent);

            }
        });

    }

    public void GetContactsIntoArrayList(){

        cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);

        while (cursor.moveToNext()) {

            id.add(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)));;

            name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));

            phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            StoreContacts.add(name + " "  + ":" + " " + phonenumber);
        }

        cursor.close();

    }

    public void EnableRuntimePermission(){

        if (ActivityCompat.shouldShowRequestPermissionRationale(
                MainActivity.this,
                Manifest.permission.READ_CONTACTS))
        {

            Toast.makeText(MainActivity.this,"CONTACTS permission allows us to Access CONTACTS app", Toast.LENGTH_LONG).show();

        } else {

            ActivityCompat.requestPermissions(MainActivity.this,new String[]{
                    Manifest.permission.READ_CONTACTS}, RequestPermissionCode);

        }
    }

    @Override
    public void onRequestPermissionsResult(int RC, String per[], int[] PResult) {

        switch (RC) {

            case RequestPermissionCode:

                if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {

                    Toast.makeText(MainActivity.this,"Permission Granted, Now your application can access CONTACTS.", Toast.LENGTH_LONG).show();

                } else {

                    Toast.makeText(MainActivity.this,"Permission Canceled, Now your application cannot access CONTACTS.", Toast.LENGTH_LONG).show();

                }
                break;
        }

    }
}
当我单击该项目时,系统崩溃。 我也尝试了
SharedReference
,它也做了同样的事情。我正在使用android studio 2.3.3。 有人建议我做什么吗。
请帮助在SingleContact Activity中初始化bundle数据可能有误,您应该在创建方法的内部初始化

  public class SingleContact extends AppCompatActivity {

    Bundle bundle;
    String string; 
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_single_contact);
        bundle = getIntent().getExtras()
        button= (Button) findViewById(R.id.button);

        string= bundle.getString("ID");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(SingleContact.this, string, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

在onCreate()之前无法获取捆绑包。编写如下代码,它将解决您的错误

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_single_contact);
    // Your bundle code.
    Bundle bundle=getIntent().getExtras();
    String string = bundle.getString("ID",null);
}

你能分享一下你的崩溃吗report@SuyashShrivastava在onCreate()之前,您无法获取捆绑包。请将捆绑包代码放入onCreate(){bundle bundle=getIntent().getExtras();String String=bundle.getString(“ID”,null);}好的,让我试试。@Suyashhrivastava欢迎您,先生。您可以接受答案,以便管理员可以关闭此问题。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_single_contact);
    // Your bundle code.
    Bundle bundle=getIntent().getExtras();
    String string = bundle.getString("ID",null);
}