Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
Android 将数组从活动传递到片段_Android_Android Fragments - Fatal编程技术网

Android 将数组从活动传递到片段

Android 将数组从活动传递到片段,android,android-fragments,Android,Android Fragments,在将数组传递给可以在putStringArray()方法上显示nullpointerexception的片段时,我如何处理该异常 Cursor test=db.rawQuery("select * from message",null); test.moveToFirst(); String[] messages=new String[test.getCount()]; if(test.getCount()>0) { do { if(test.getSt

在将数组传递给可以在putStringArray()方法上显示nullpointerexception的片段时,我如何处理该异常

Cursor test=db.rawQuery("select * from message",null);
test.moveToFirst();
String[] messages=new String[test.getCount()];
if(test.getCount()>0) 
{
    do 
    {
        if(test.getString(2).equals(mob))
            Toast.makeText(getApplicationContext(), "You\n" + test.getString(1), Toast.LENGTH_LONG).show();
        else
            Toast.makeText(getApplicationContext(), test.getString(2)+"\n" + test.getString(1), Toast.LENGTH_LONG).show();
    } while (test.moveToNext());
}
data.putStringArray("messages", messages);
data.putString("number", mob);
错误

java.lang.RuntimeException: Unable to start activity ComponentInfo{...............................}: java.lang.NullPointerException

在活动中,为数组声明一个类作用域。然后在你的片段中,只需调用

((YourActivityClass)getActivity()).<Your array> 
((YourActivityClass)getActivity()。

直接访问阵列。无需通过

代码以方法开始

private Bundle showMessages()
{

    Bundle extra=new Bundle();
    Cursor test=db.rawQuery("select * from message",null);
    test.moveToFirst();
    String[] messages=new String[test.getCount()];

    int i=0;
    if(test.getCount()>0) {
        do {
            if(test.getString(2).equals(mob)) {
                Toast.makeText(getApplicationContext(), "You\n" + test.getString(1), Toast.LENGTH_LONG).show();
                messages[i]="You\n" + test.getString(1);
            }
            else {
                Toast.makeText(getApplicationContext(), test.getString(2) + "\n" + test.getString(1), Toast.LENGTH_LONG).show();
                messages[i]=test.getString(2) + "\n" + test.getString(1);
            }

            i++;
        } while (test.moveToNext());
    }
    //data.putString("message",valu);
    extra.putStringArray("messages", messages);
    extra.putString("number", mob);
    return extra;
}
和调用的

Bundle bundle=new Bundle(showMessages());

我知道,但是错误显示data.putStringArray(“messages”,messages);方法???声明的数据在哪里?上面的代码在方法中,并在Activity中调用oncreate()方法感谢您的合作。我终于找到了解决这个问题的办法你没有在数组中放任何东西,对吗?