Android存储从res文件夹到sqlite的图像路径

Android存储从res文件夹到sqlite的图像路径,android,database,sqlite,Android,Database,Sqlite,我想存储从资源文件夹(drawable)到sqlite的图像路径,然后检索它。我怎样才能做到这一点 更新: 检索完图像后,我在这里有一个按钮来对listview进行重新排序。这就是为什么我需要存储sqlite的映像路径 这就是我迄今为止所尝试的: static final int[] imgs = { R.drawable.dinaretreat, // 0 R.drawable.cobterrace, // 1 R.drawable.ve

我想存储从资源文件夹(drawable)到sqlite的图像路径,然后检索它。我怎样才能做到这一点

更新: 检索完图像后,我在这里有一个按钮来对listview进行重新排序。这就是为什么我需要存储sqlite的映像路径

这就是我迄今为止所尝试的:

    static final int[] imgs = {
        R.drawable.dinaretreat, // 0
        R.drawable.cobterrace, // 1
        R.drawable.ventassostreet, // 2
        R.drawable.summerhillblvddrouin, // 3
        R.drawable.todmanstreetdrouin, // 4
        R.drawable.aqueductroad, // 5
        R.drawable.northroad, // 6
        R.drawable.pottsroad, // 7
        R.drawable.onemcclenaghanplace, // 8
        R.drawable.twomcclenaghanplace, // 9
        R.drawable.threemcclenaghanplace, // 10
        R.drawable.fourmcclenaghanplace, // 11
        R.drawable.fivemcclenaghanplace, // 12
        R.drawable.sevenmcclenaghanplace, // 13
        R.drawable.elevenplacemcclenaghanplace, // 14
        R.drawable.twelvemcclenaghanplace, // 15
        R.drawable.fivethreetwosummerhillblvddrouin, // 16
        R.drawable.seventeenajaxstreetdrouin, // 17
        R.drawable.onethirtythreemountainviewblvd, // 18
        R.drawable.fivethreeonesummerhillblvddrouin // 19
};


    String[] text, price;
ArrayList<String> priceList;

private DBHelper dbHelper;
Cursor cursor;

MyCustomAdapter adapter;

Button back, filter;
TextView highest, lowest, location;

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

    initControls();

    displayRecords();
}

// TODO displayRecords
private void displayRecords() {

    checkDatabaseConnection();

    text = dbHelper.getAll();
    price = dbHelper.getAllPrices();

    adapter = new MyCustomAdapter(imgs, text, price);

    lv.setAdapter(adapter);

}

private void initControls() {

    // TextViews
    highest = (TextView) findViewById (R.id.tvHighest);
    lowest = (TextView) findViewById (R.id.tvLowest);
    location = (TextView) findViewById (R.id.tvLocation);

    // Buttons
    filter = (Button) findViewById (R.id.btFilter);
    back = (Button) findViewById (R.id.btBack);
    back.setOnClickListener(this);
    filter.setOnClickListener(this);

    // ListView
    lv = (ListView) findViewById (R.id.lv);
    lv.setFastScrollEnabled(true);

    lv.setOnItemClickListener(this);

}

@Override
public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
    String strHouseName = "house_name";
    String strHousePrice = "house_price";

    textview1 = (TextView) v.findViewById(R.id.text1);
        textview2 = (TextView) v.findViewById(R.id.text2);

        String strName = textview1.getText().toString().trim();
        String strPrice = textview2.getText().toString().trim();

    Intent i;

    i = new Intent(this, ViewHouse.class);
    i.putExtra(strHouseName, strName);
    i.putExtra(strHousePrice, strPrice);
    startActivity(i);


}

@SuppressLint("InlinedApi")
private void displayDialog() {
    // TODO displayDialog
    final ArrayAdapter<String> adp = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, sortBy);

    LayoutInflater li = LayoutInflater.from(this);
    View promptsView = li.inflate(R.layout.dialog_layout, null);

    promptsView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));

    final Spinner mSpinner= (Spinner) promptsView
            .findViewById(R.id.spDialog);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("Sort By...");
    builder.setIcon(R.drawable.launcher);

    mSpinner.setAdapter(adp);
    mSpinner.setSelection(0);
    mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parent, View v,
            int pos, long id) {
        strSpinner = mSpinner.getSelectedItem().toString();

        if(strSpinner.equals("Highest Price")){
            highest.setTypeface(Typeface.DEFAULT_BOLD);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT);
            price = dbHelper.sortHighestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();

        } else if (strSpinner.equals("Lowest Price")){
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT_BOLD);
            location.setTypeface(Typeface.DEFAULT); 
            price = dbHelper.sortLowestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        } else if (strSpinner.equals("Location")) {
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            Log.d("Default", "Default");
        }
    }

    public void onNothingSelected(AdapterView<?> arg0) {

    }
    });

    builder.setPositiveButton("Okay",
            new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });

    builder.setView(promptsView);
    AlertDialog alert = builder.create();
    alert.show();


} 

    class MyCustomAdapter extends BaseAdapter
{
    String[] data_text1;
    String[] data_text2;
    int[] data_image;

MyCustomAdapter() {
    data_text1 = null;
    data_text2 = null;
    data_image = null;
}

MyCustomAdapter(int[] image, String[] house, String[] price) {
    data_text1 = house;
    data_text2 = price;
    data_image = image;
}

public int getCount() {
    return data_text1.length;
}

public String getItem(int position) {
    return null;
}

public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = getLayoutInflater();
    View row;

    row = inflater.inflate(R.layout.listrow, null);

    textview1 = (TextView) row.findViewById(R.id.text1);
    textview2 = (TextView) row.findViewById(R.id.text2);
    ImageView imageview = (ImageView) row.findViewById(R.id.image);

    imageview.setScaleType(ImageView.ScaleType.FIT_XY);
    textview1.setText(data_text1[position]);
    String strPrice = "$" + (new DecimalFormat("#,###.00")).format(Integer.parseInt(data_text2[position])) ;
    textview2.setText(strPrice);
    imageview.setImageResource(data_image[position]);

    return (row);

    }
}
static final int[]imgs={
R.drawable.dinaretreat,//0
R.drawable.cobtrace,//1
R.drawable.ventassostreet,//2
R.drawable.summerhilllvddrouin,//3
R.drawable.todmanstreetdrouin,//4
R.drawable.沟渠路,//5
R.drawable.northroad,//6
R.drawable.pottsroad,//7
R.drawable.onemcclenaghanplace,//8
R.drawable.twomcclenaghanplace,//9
R.drawable.threemcclenaghanplace,//10
R.drawable.fourmcclenaghanplace,//11
R.drawable.fivemcclenaghanplace,//12
R.drawable.sevenmcclenaghanplace,//13
R.drawable.elevenplacemcclenaghanplace,//14
R.drawable.TwelveMcLenaghanPlace,//15
R.drawable.FiveThresetwestosummerHillblvDdrouin,//16
R.drawable.Servenajaxstreetdrouin,//17
R.drawable.OneThirtyThirtyMountainViewBlvd,//18
R.drawable.FivethreeonesSummerhillBlvddrouin//19
};
字符串[]文本,价格;
ArrayList价格表;
私人DBHelper DBHelper;
光标;
MyCustomAdapter适配器;
按钮返回,过滤器;
TextView最高、最低位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.viewhouseandland);
initControls();
显示记录();
}
//待办事项显示记录
私有void displayRecords(){
checkDatabaseConnection();
text=dbHelper.getAll();
price=dbHelper.getAllPrices();
适配器=新的MyCustomAdapter(imgs、文本、价格);
低压设置适配器(适配器);
}
私有控件(){
//文本视图
最高=(TextView)findViewById(R.id.tvHighest);
最低=(TextView)findViewById(R.id.tVlost);
位置=(TextView)findViewById(R.id.tvLocation);
//钮扣
filter=(按钮)findviewbyd(R.id.btFilter);
返回=(按钮)findViewById(R.id.btBack);
back.setOnClickListener(this);
filter.setOnClickListener(this);
//列表视图
lv=(ListView)findViewById(R.id.lv);
lv.setFastScrollEnabled(真);
lv.setOnItemClickListener(本);
}
@凌驾
public void onItemClick(AdapterView父视图、视图v、整数位置、长id){
字符串strHouseName=“房屋名称”;
字符串strHousePrice=“房价”;
textview1=(TextView)v.findViewById(R.id.text1);
textview2=(TextView)v.findViewById(R.id.text2);
字符串strName=textview1.getText().toString().trim();
String strPrice=textview2.getText().toString().trim();
意图一;
i=新意图(此,ViewHouse.class);
i、 putExtra(strHouseName,strName);
i、 putExtra(strHousePrice,strPrice);
星触觉(i);
}
@SuppressLint(“InlinedApi”)
私有void显示对话框(){
//待办事项显示对话框
最终阵列适配器adp=新阵列适配器(此,
android.R.layout.simple\u spinner\u项目,sortBy);
LayoutInflater li=LayoutInflater.from(this);
视图提示视图=li.充气(R.layout.dialog\u layout,null);
promptsView.setLayoutParams(新的LinearLayout.LayoutParams(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
最终微调器mSpinner=(微调器)提示视图
.findviewbyd(R.id.spDialog);
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(“排序依据…”);
builder.setIcon(R.drawable.launcher);
mSpinner.setAdapter(adp);
mSpinner.setSelection(0);
mSpinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView父视图、视图v、,
内部位置,长id){
strSpinner=mSpinner.getSelectedItem().toString();
如果(strSpinner.equals(“最高价格”)){
最高.setTypeface(Typeface.DEFAULT_BOLD);
最低.setTypeface(Typeface.DEFAULT);
location.setTypeface(Typeface.DEFAULT);
price=dbHelper.sortHighestPrice();
适配器=新的MyCustomAdapter(imgs、文本、价格);
低压设置适配器(适配器);
adapter.notifyDataSetChanged();
}否则,如果(标准价格等于(“最低价格”)){
最高.setTypeface(Typeface.DEFAULT);
最低.setTypeface(Typeface.DEFAULT_BOLD);
location.setTypeface(Typeface.DEFAULT);
price=dbHelper.sortLowestPrice();
适配器=新的MyCustomAdapter(imgs、文本、价格);
低压设置适配器(适配器);
adapter.notifyDataSetChanged();
}else if(strSpinner.equals(“位置”)){
最高.setTypeface(Typeface.DEFAULT);
最低.setTypeface(Typeface.DEFAULT);
location.setTypeface(Typeface.DEFAULT_BOLD);
}否则{
Log.d(“默认”、“默认”);
}
}
未选择公共无效(AdapterView arg0){
}
});
builder.setPositiveButton(“好的”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.dismise();
}
});
builder.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.dismise();
}
});
builder.setView(promptsView);
AlertDialog alert=builder.create();
alert.show();
} 
类MyCustomAdapter扩展了BaseAdapter
{
字符串[]数据_text1;
字符串[]数据_text2;
int[]数据\图像;
MyCustomAdapter(){
数据_text1=null;
数据_text2=null;
数据\图像=空;
}
MyCustomAdapter(int[]图像,String[]房子,String[]价格){
数据_text1=房屋;
数据_text2=价格;
数据_image=i
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="list_images">
        <item>@drawable/dinaretreat</item>
        <item>@drawable/cobterrace</item>
        <item>@drawable/ventassostreet</item>
        <item>@drawable/summerhillblvddrouin</item>
        <item>@drawable/todmanstreetdrouin</item>
        <item>@drawable/aqueductroad</item>
        <item>@drawable/northroad</item>
        <item>@drawable/pottsroad</item>
        <item>@drawable/onemcclenaghanplace</item>
        <item>@drawable/twomcclenaghanplace</item>
        <item>@drawable/threemcclenaghanplace</item>
        <item>@drawable/fourmcclenaghanplace</item>
        <item>@drawable/fivemcclenaghanplace</item>
        <item>@drawable/sevenmcclenaghanplace</item>
        <item>@drawable/elevenplacemcclenaghanplace</item>
        <item>@drawable/twelvemcclenaghanplace</item>
        <item>@drawable/fivethreetwosummerhillblvddrouin</item>
        <item>@drawable/seventeenajaxstreetdrouin</item>
        <item>@drawable/onethirtythreemountainviewblvd</item>
        <item>@drawable/fivethreeonesummerhillblvddrouin</item>
    </array>
</resources>
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = getLayoutInflater();
    View row = inflater.inflate(R.layout.listrow, null);

    textview1 = (TextView) row.findViewById(R.id.text1);
    textview1.setText(data_text1[position]);

    textview2 = (TextView) row.findViewById(R.id.text2);
    String strPrice = "$" + (new DecimalFormat("#,###.00")).format(Integer.parseInt(data_text2[position])) ;
    textview2.setText(strPrice);

    ImageView imageview = (ImageView) row.findViewById(R.id.image);
    imageview.setScaleType(ImageView.ScaleType.FIT_XY);
    imageview.setImageResource((context.getResources().getIntArray())[position]);

    return (row);
}