2011-11-11 42 views
1

我有一个从SQLite数据库填充其内容的列表视图。 这里是我的代码:Android:向TextView添加额外的字符串,从数据库填充其内容

ListView listView = (ListView) findViewById(R.id.lstText); 
     listView.setOnItemClickListener(this); 
     listView.setAdapter(new MySimpleCursorAdapter(this, R.layout.listitems, 
       managedQuery(Uri.withAppendedPath(Provider.CONTENT_URI, 
         Database.Project.NAME), new String[] { BaseColumns._ID, 
         Database.Project.C_PROJECTTITLE, 
         Database.Project.C_SMALLIMAGE, Database.Project.C_PROJECTDESCRIPTION, Database.Project.C_ORGANIZATIONTITLE}, null, null, null), 
       new String[] { Database.Project.C_PROJECTTITLE, 
         Database.Project.C_SMALLIMAGE, Database.Project.C_PROJECTDESCRIPTION, Database.Project.C_ORGANIZATIONTITLE}, new int[] { 
         R.id.txt_title, R.id.image, R.id.txt_list_desc, R.id.txt_org})); 

我想提出一个额外的字符串一些TextViews当其在列表上显示的上方。例如,我想添加一个String以“从”上R.id.txt_org字,从中为Database.Project.C_ORGANIZATIONTITLE

比方说,填充String数据库中的填充字符串之前:新组织, 一个额外的String“从“将显示什么是:来自新组织

任何人都可以帮助我吗?非常感谢你。

编辑:

仅供参考,这是我的SimpleCursorAdapter方法:

class MySimpleCursorAdapter extends SimpleCursorAdapter { 

     public MySimpleCursorAdapter(Context context, int layout, Cursor c, 
       String[] from, int[] to) { 
      super(context, layout, c, from, to); 
      loader = new ImageLoader(context); 
      this.context = context; 
     } 

     Context context=null; 
     ImageLoader loader = null; 

     public void setViewImage(ImageView v, String value) { 
      v.setTag(value); 
      loader.DisplayImage(value, context, v); 
     } 
    } 
+0

刚刚更新了我的问题,你可以看看吗?我没有getView方法。我应该如何制作一个? – hectichavana

回答

2

既然你已经使用自定义适配器,覆盖适配器的bindView()newView()方法,而不是getView()。这样你就不必手动处理回收行的视图。

在这些方法中,您可以从生成的光标中获取数据并在将其绑定到行视图之前对其进行处理。

//编辑:下面的一些更多的代码。请注意,这只是一个粗略的概述,绝不意味着完整或经过测试。

class MySimpleCursorAdapter extends SimpleCursorAdapter { 

    private ImageLoader mLoader = null; 
    private LayoutInflater mInflater = null; 
    private int mBusinessNameIndex = -1; 
    private int mSmallImageIndex = -1; 

    public MySimpleCursorAdapter(Context context, int layout, Cursor c, 
      String[] from, int[] to) { 
     super(context, layout, c, from, to); 
     mLoader = new ImageLoader(context); 
     mInflater = getLayoutInflater();  
     mBusinessNameIndex = c.getColumnIndexOrThrow(Database.Project.NAME); 
     mSmallImageIndex = c.getColumnIndexOrThrow(Database.Project.C_SMALLIMAGE); 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     return mInflater.inflate(R.layout.row, null); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     // Get your views from 'view' 
     TextView someTextView = (TextView) view.findViewById(R.id.xxx); 
     ImageView someImageView = (ImageView) view.findViewById(R.id.yyy); 
     // Set the data 
     someTextView.setText("from " + cursor.getString(mBusinessNameIndex)); 
     mLoader.DisplayImage(cursor.getString(mSmallImageIndex), context, someImageView);  
    } 
} 
+0

感谢能告诉我如何用我拥有的代码来做到这一点?我在这一个相当新手 – hectichavana

+0

我添加了一些额外的代码来帮助你开始。通过遵循这两个链接,您将能够完全相同。 :) –

+0

真棒伙计!有用。你只是让我的一天:) – hectichavana