Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 Android-通过另一个类向字符串[]添加值_Java_Android_Arrays_Database_String - Fatal编程技术网

Java Android-通过另一个类向字符串[]添加值

Java Android-通过另一个类向字符串[]添加值,java,android,arrays,database,string,Java,Android,Arrays,Database,String,我在从另一个类向字符串[]数组添加值时遇到问题。我想做的是通过MyDatabaseAdapter.java类从数据库向MainScreenEntered.java类添加值 请帮忙 这是我的密码 MainScreenentered.java public class MainScreenEntered extends Activity implements OnItemClickListener{ @SuppressLint("NewApi") ListView lv; L

我在从另一个类向字符串[]数组添加值时遇到问题。我想做的是通过MyDatabaseAdapter.java类从数据库向MainScreenEntered.java类添加值

请帮忙

这是我的密码

MainScreenentered.java

public class MainScreenEntered extends Activity implements OnItemClickListener{
    @SuppressLint("NewApi")
    ListView lv;
    List<RowItem> rowItems;
    MyDatabaseAdapter mh;
    String username;
    ListView listViewSMS;
    Cursor cursor;
    Context context;

    public static String[] names = new String[] {};
    public static String[] descriptions = new String[] {};
    public static String[] pics = new String[] {};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_screen_entered);
        mh = new MyDatabaseAdapter(this);
        Bundle bundle = this.getIntent().getExtras();
        username = bundle.getString("username");
        Message.message(this, username);

        try
        {
        mh.getDataToDatabase();

        rowItems = new ArrayList<RowItem>();

        for(int i =0; i< names.length; i++)
        {
            RowItem item = new RowItem(pics[i], names[i], descriptions[i]);
            rowItems.add(item);
        }

        lv = (ListView)findViewById(R.id.lvEntries);
        CustomListViewAdapter adapter = new CustomListViewAdapter(this, R.layout.list_layout,rowItems);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(this);
        }
        catch(Exception e)
        {
            Message.message(this, ""+e);
        }




    }
}
public class MyDatabaseAdapter {
    MyHelper helper;

    public MyDatabaseAdapter (Context context)
    {
        helper = new MyHelper(context);

    }


    public void getDataToDatabase()
    {
        MainScreenEntered ms = new MainScreenEntered();
        SQLiteDatabase db = helper.getWritableDatabase();
        String columns[] = {MyHelper.ENTRY_FULLNAME,MyHelper.ENTRY_DESCRIPTION,MyHelper.ENTRY_IMAGE};
        Cursor c=db.query(MyHelper.TABLE_ENTRIES, columns, null, null, null, null, null);

        int i=0;
        while(c.moveToNext())
        {
        String name = c.getString(0);   
        String desc = c.getString(1);   
        String pic = c.getString(2);    

        ms.names[i] = name;
        ms.descriptions[i] = desc;
        ms.pics[i] = pic;

        i++;
        }
        db.close();
    }
}
你可以这样做

in onCreate
mh = new MyDatabaseAdapter(this,this);
现在

试试这个

main屏幕中输入.java

public static ArrayList<String> names = new ArrayList<String>();
public static ArrayList<String> descriptions = new ArrayList<String>();
public static ArrayList<String> pics = new ArrayList<String>();
然后

rowItems=newArrayList();

对于(inti=0;i使用c.movetoFirst()在while循环之前,对于静态数组,你不必创建它的对象,你可以直接调用它ClassName.variable\u name…如果你使用字符串的arraylist而不是字符串数组,那会更好。

在UI线程上执行DB操作时要小心,你可能会遇到一些ANR。

实际的“问题”是什么?你有错误吗?
public static ArrayList<String> names = new ArrayList<String>();
public static ArrayList<String> descriptions = new ArrayList<String>();
public static ArrayList<String> pics = new ArrayList<String>();
while(c.moveToNext())
{
    String name = c.getString(0);   
    String desc = c.getString(1);   
    String pic = c.getString(2);    

    MainScreenEntered.names.add(name);
    MainScreenEntered.descriptions.add(desc);
    MainScreenEntered.pics.add(pic);
}
    rowItems = new ArrayList<RowItem>();

    for(int i =0; i<names.length; i++)
    {
        RowItem item = new RowItem(pics.get(i), names.get(i), descriptions.get(i));
        rowItems.add(item);
    }