【发布时间】:2017-08-06 18:19:20
【问题描述】:
我已经尝试了几天来解决我的问题,但现在我决定尝试问你。我是安卓编程的菜鸟,请见谅。
我有一个主要的Activity,其中有一个Listview。
我正在使用 Simplecursoradapter 向它提供来自我的数据库的信息和我作为 XML 制作的自定义布局。
我的问题是,我想更改我在此自定义布局中使用的一些术语或单位,这不是通过数据库提供的。
但是如果我将 settext 用于其中的TextViews,它不会运行,应用程序将崩溃,因为我的setContentView 设置为此类的另一个布局,我猜。我一直在查看inflaters,试图看看我是否可以更改XML 可编程,使用来自String.xml 的字符串并进行更改。但据我所知,这些都不是一种选择。后来我在 StackOverflow 上找到了这段代码
Activity activity = (Activity)getContext();
TextView t = (TextView)activity.findViewById(R.id.txtDisponible);
t.setText("E-ticket validado");
但我无法让它工作,因为第一行不适合我。 Activity 不会给我getcontext 方法。即使我确实让这个工作,我也不知道这是否会工作。你能指导我往哪个方向走吗?截至目前,我的ListView 没有课程,这就是要走的路。我想尽可能简单。
感谢您的帮助。
编辑 1:
好的,我试着把它放在我的代码中:
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.item_list, null);
TextView t = (TextView) view.findViewById(R.id.kmListview);
t.setText("bok");
应用程序不会崩溃,但它也不会更改文本视图。
【问题讨论】:
-
设置只有 textView 并不能解决您的问题。您需要在适配器中保留数据列表,并且需要更新列表。每次更新列表项后,您需要调用适配器的 notifyDataSetChange() 方法。您对 listView 的工作方式确实有很多问题。我认为,这是 Android 中最难的部分。首先你需要了解ListView,回收ListView中的item,在ListView中使用ViewHolder(用于布局)以及管理listView的item(用于数据)。
标签: java android listview settext