Java Android-通过另一个类向字符串[]添加值
我在从另一个类向字符串[]数组添加值时遇到问题。我想做的是通过MyDatabaseAdapter.java类从数据库向MainScreenEntered.java类添加值 请帮忙 这是我的密码 MainScreenentered.javaJava 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
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);
}