我一直在努力寻找解决问题的方法,但现在我决定试着问你。我是编程Android的菜鸟,所以请原谅我。
我有一个主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");
该应用不会崩溃,但它也不会改变文本视图。
答案 0 :(得分:0)
Activity扩展了ContextWrapper类,你应该使用this或getBaseContext(),因为没有类似getContext()的方法扩展了ContextWrapper类。
所以在你的Actitiy中使用它作为Context或getBaseContext(),我认为你的问题将得到解决。