
实现的功能为从服务器获取数据,在布局页面上显示。由于的个数是不确定的,因此采用在布局页面中定义多个ImageView来显示是不合理的。
(一)首先定义布局
android:id="@+id/id_layout_movie"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
(二)加载显示时获取到布局文件
RelativeLayout rl_Movie = (RelativeLayout) findViewById(Ridid_layout_movie);
(三)依次循环服务器获取的数据,一张一张设置显示的位置
//newWidth为显示的宽度,newHeight为显示的高度
RelativeLayoutLayoutParams lp1 = new RelativeLayoutLayoutParams( newWidth, newHeight);
设置lp1leftMargin和lp1topMargin的值
(四)最后设置rl_MovieaddView(iv, lp1)将加入布局文件中
数据库获取代码如下:
String databaseFilename = DATABASE_PATH + "/" + DATABASE_NAME;
File dir = new File(DATABASE_PATH);
if (!direxists())
dirmkdir();
if (!(new File(databaseFilename))exists()) {
InputStream is = contextgetResources()openRawResource(Rrawjobexam);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[8192];
int count = 0;
while ((count = isread(buffer)) > 0) {
foswrite(buffer, 0, count);
}
fosclose();
isclose();
}
db = SQLiteDatabaseopenOrCreateDatabase(databaseFilename, null);
AlertDialogBuilder builder=new AlertDialogBuilder(this)
setTitle("对话框")
setSingleChoiceItems(thisgetResources()getStringArray(Rarraybefore_time)
将你数据库里读取出来的东西放到一个数组里边,通过调用放到上边的括号里边就可以啦。
thisgetResources()getStringArray(Rarraybefore_time)//调用在array文件中自己定义的数组
您好,请您把SimpleCursorAdapter全部替换掉:
DatabaseActivityjava
package compoqopdatabase;
import javaioFile;
import javaioFileNotFoundException;
import javaioFileOutputStream;
import javaioIOException;
import javaioInputStream;
import javaioOutputStream;
import androidappActivity;
import androiddatabaseCursor;
import androidosBundle;
import androidviewLayoutInflater;
import androidwidgetCursorAdapter;
import androidwidgetListView;
import androidwidgetSimpleCursorAdapter;
import androidwidgetToast;
import compoqopR;
public class DatabasesActivity extends Activity {
public LayoutInflater m;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmaintable);
DBAdapter db = new DBAdapter(this);
try {
String destPath = "/data/data/" + getPackageName() +
"/databases";
File f = new File(destPath);
if (true) {//!fexists()) {
fmkdirs();
fcreateNewFile();
//---copy the db from the assets folder into
// the databases folder---
CopyDB(getBaseContext()getAssets()open("mydb"),
new FileOutputStream(destPath + "/MyDB"));
}
} catch (FileNotFoundException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
listView=(ListView)findViewById(Ridshow3);
dbopen();
for(int a=1;a<=3;a++)
{
int rowID=a;
Cursor c = dbgetTitle(rowID);
if (cmoveToFirst())
inflateList(c);
else
ToastmakeText(this, "No title found",
ToastLENGTH_LONG)show();
}
dbclose();
}
public void CopyDB(InputStream inputStream,
OutputStream outputStream) throws IOException {
//---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStreamread(buffer)) > 0) {
outputStreamwrite(buffer, 0, length);
}
inputStreamclose();
outputStreamclose();
}
public void inflateList(Cursor c)
{
// 填充SimpleCursorAdapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
DatabasesActivitythis,
Rlayoutline, c,
new String[] { "_id", "name","email" }
, new int[] {Ridmy_title, Ridmy_content,Ridmy_content2},
CursorAdapterFLAG_REGISTER_CONTENT_OBSERVER); //③
// 显示数据
listViewsetAdapter(adapter);
}
}
DBAdapterjava
package compoqopdatabase;
import javautilHashMap;
import compoqopR;
import androidcontentContentValues;
import androidcontentContext;
import androiddatabaseCursor;
import androiddatabaseSQLException;
import androiddatabasesqliteSQLiteDatabase;
import androiddatabasesqliteSQLiteOpenHelper;
import androidutilLog;
import androidviewView;
import androidviewViewGroup;
import androidwidgetBaseAdapter;
import androidwidgetImageView;
import androidwidgetTextView;
public class DBAdapter
{
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_EMAIL = "email";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "MyDB";
private static final String DATABASE_TABLE = "contacts";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE =
"create table titles (_id integer primary key autoincrement, "
+ "isbn text not null, title text not null, "
+ "publisher text not null);";
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx)
{
thiscontext = ctx;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
dbexecSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
Logw(TAG, "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
dbexecSQL("DROP TABLE IF EXISTS titles");
onCreate(db);
}
}
//---打开数据库---
public DBAdapter open() throws SQLException
{
db = DBHelpergetWritableDatabase();
return this;
}
//---关闭数据库---
public void close()
{
DBHelperclose();
}
//---向数据库中插入一个标题---
public long insertTitle(String name, String email)
{
ContentValues initialValues = new ContentValues();
initialValuesput(KEY_NAME, name);
initialValuesput(KEY_EMAIL, email);
return dbinsert(DATABASE_TABLE, null, initialValues);
}
//---删除一个指定标题---
public boolean deleteTitle(long rowId)
{
return dbdelete(DATABASE_TABLE, KEY_ROWID +
"=" + rowId, null) > 0;
}
//---检索所有标题---
public Cursor getAllTitles()
{
return dbquery(DATABASE_TABLE, new String[] {
KEY_ROWID,
KEY_NAME,
KEY_NAME},
null,
null,
null,
null,
null);
}
//---检索一个指定标题---
public Cursor getTitle(long rowId) throws SQLException
{
Cursor mCursor =
dbquery(true, DATABASE_TABLE, new String[] {
KEY_ROWID,
KEY_NAME,
KEY_EMAIL},
KEY_ROWID + "=" + rowId,
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursormoveToFirst();
}
return mCursor;
}
//---更新一个标题---
public boolean updateTitle(long rowId, String name,
String email)
{
ContentValues args = new ContentValues();
argsput(KEY_NAME, name);
argsput(KEY_EMAIL, email);
return dbupdate(DATABASE_TABLE, args,
KEY_ROWID + "=" + rowId, null) > 0;
}
}
maintablexml
<xml version="10" encoding="utf-8">
<LinearLayout xmlns:android=">
您好,我来为您解答:
建议LZ的em采用LinearLayout布局,设置android:orientation="horizontal"
,在布局里面放置条码和数量的TextView,调整位置对齐就可以了。
如果我的回答没能帮助您,请继续追问。
本地数据就用ormlite-android-419jar和ormlite-core-419jar 可以帮助你管理本地数据,网络上的数据应该要后台做接口让你去调用,adapter可以写一个方法addpendList或者setList,这两个方法都是控制当前adapter持有的list的,adapter可以持有这个list并且给每个item设置布局。
本地得到的数据就是List,如果是服务器的数据就是JSON格式,可以用JSONUtiljava之类的去解析然后获取list,不是list的数据就直接resgetString("name");
ListViewSetAdapter();就可以设置adapter了,然后adapter如果有数据就会填充List
刷新的话是adapternotifyDataSetChanged();
本地数据就用ormlite-android-419jar和ormlite-core-419jar 可以帮助你管理本地数据,网络上的数据应该要后台做接口让你去调用,adapter可以写一个方法addpendList或者setList,这两个方法都是控制当前adapter持有的list的,adapter可以持有这个list并且给每个item设置布局。
本地得到的数据就是List,如果是服务器的数据就是JSON格式,可以用JSONUtiljava之类的去解析然后获取list,不是list的数据就直接resgetString("name");
ListViewSetAdapter();就可以设置adapter了,然后adapter如果有数据就会填充List
刷新的话是adapternotifyDataSetChanged();
以上就是关于android 存在数据库中的动态图片,如何读取出来,显示在ImageView中全部的内容,包括:android 存在数据库中的动态图片,如何读取出来,显示在ImageView中、android怎样实现用代码从数据库获取短信内容等等、android 如果将dialog列表的数据从数据库获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)