如何使用BaseAdapter将标题放入ListVIEw?或者在我下面使用的那个旁边还有其他方法.
我尝试过使用addheaderVIEw(header)函数,但仍然没有运气.
需要一些帮助.谢谢!代码如下.
public class VIEwIntervIEw extends Activity {IntervIEwList intervIEwList = null;TextVIEw header;ListVIEw List = null;static ArrayList<String> TitleList;static ArrayList<String> markingsList;@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main_intervIEw); List = (ListVIEw) findVIEwByID(R.ID.List_intervIEw); String TAG = "INTERVIEW List"; header = (TextVIEw) findVIEwByID(R.ID.header); header.setText("Test"); TitleList = new ArrayList<String>(); markingsList = new ArrayList<String>(); try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); XMLReader xreader = parser.getXMLReader(); inputSource is = new inputSource(getResources().openRawResource(R.raw.bookList)); IntervIEwHandler myIntervIEwHandler = new IntervIEwHandler(); xreader.setContentHandler(myIntervIEwHandler); xreader.parse(new inputSource(is.getByteStream())); } catch(Exception e) { Log.i(TAG, "IntervIEwList parse exception " + e.getMessage()); } //---get result from IntervIEwHandler tempIntervIEwList intervIEwList = IntervIEwHandler.tempIntervIEwList; String strMarkings = intervIEwList.getMarkings().get(0); String[] arrMarkings = strMarkings.split("\|\|"); for(int i=0; i<arrMarkings.length; i++) { TitleList.add("Title " + intervIEwList.getTitle().get(0)); markingsList.add(arrMarkings[i]); } //List.addheaderVIEw(header); //setlistadapter(new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, intervIEwList.intervIEw)); List.setAdapter(new IntervIEwAdapter(this,TitleList,markingsList));}public static class IntervIEwAdapter extends BaseAdapter { private LayoutInflater mInflater; private List<String> dataTitle; private List<String> dataMarkings; public IntervIEwAdapter(Context context, List<String> dataTitle, List<String> dataMarkings) { mInflater = LayoutInflater.from(context); dataTitle = this.dataTitle; dataMarkings = this.dataMarkings; } public int getCount() { return TitleList.size(); } public Object getItem(int position) { return position; } public long getItemID(int position) { return position; } public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { VIEwHolder holder; if(convertVIEw == null) { convertVIEw = mInflater.inflate(R.layout.layout_intervIEw, null); holder = new VIEwHolder(); holder.Title = (TextVIEw)convertVIEw.findVIEwByID(R.ID.Title); holder.markings = (TextVIEw)convertVIEw.findVIEwByID(R.ID.markings); convertVIEw.setTag(holder); } else { holder = (VIEwHolder)convertVIEw.getTag(); } holder.Title.setText(TitleList.get(position)); holder.markings.setText(markingsList.get(position)); return convertVIEw; } static class VIEwHolder { TextVIEw Title; TextVIEw markings; }}
}
解决方法:
你根本做不到
VIEw header = findVIEwByID(R.layout.headerVIEw);lst.addheaderVIEw(header);
这不起作用,因为传入的视图必须膨胀.简而言之,当您在活动开始时执行setContentVIEw时,androID框架会自动对视图进行膨胀并将其投入使用.为了扩展标题视图,您只需要做的就是
VIEw header = (VIEw)getLayoutInflater().inflate(R.layout.headerVIEw,null);ls.addheaderVIEw(header);
最后,在设置标题视图并运行应用程序后添加适配器.您应该看到包含放入适配器的内容的标题视图.
在我的情况下,这是有效的
VIEw header = getLayoutInflater().inflate(R.layout.header, null); ListVIEw ListVIEw = getListVIEw(); ListVIEw.addheaderVIEw(header); setlistadapter(new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_single_choice,androID.R.ID.text1, names));
总结 以上是内存溢出为你收集整理的android – 使用BaseAdapter在Listview中的标题全部内容,希望文章能够帮你解决android – 使用BaseAdapter在Listview中的标题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)