在BaseAdapter中使用xml字符串

时间:2013-12-13 10:43:32

标签: android xml string baseadapter

有没有办法从扩展BaseAdapter的活动中从我的xml中检索字符串?

我是这样做的:

public class testing extends BaseAdapter {

    private Context context;
    private Alarm alarm;
    String stringTest=context.getResources().getString(R.string.TXactive);
    private List<AlarmPreference> preferences = new ArrayList<AlarmPreference>();
    private final String[] repeatDays = {stringTest,"Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"};  
...

但是应用程序崩溃了。 我搜索了有关失败的信息。

提前致谢

3 个答案:

答案 0 :(得分:1)

移动

stringTest=context.getResources().getString(R.string.TXactive);

给你构造函数,看看是否有帮助

答案 1 :(得分:1)

请在baseadapter的构造函数中传递上下文

public class MyAdapter extends BaseAdapter {
    MyAdapter adapter;
    Context context;
    ArrayList<Model_CategoryMaster> itemArrayList;


    public MyAdapter(Context c, ArrayList<Model_CategoryMaster> itemsArray2) {
        context = c; //Update here

        itemArrayList = itemsArray2;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        // return Integer.MAX_VALUE;
        return itemArrayList.size();
    }

    @Override
    public Object getItem(int position) {

        return itemArrayList.get(position);
        // return itemArrayList.get(position % itemArrayList.size());
    }

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

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

        View rowView = LayoutInflater.from(context).inflate(
                R.layout.xml_row_category, null);
          String stringTest=context.getResources().getString(R.string.TXactive);

        return rowView;
    }
}

答案 2 :(得分:0)

由于您的背景,您可能会崩溃。您需要从活动传递上下文以访问字符串资源。

在适配器中创建构造函数,如下所示,并从您的活动中传递上下文,以便它能够获取资源。

public class testing extends BaseAdapter {
private Context context;
Public testing(Context p_context)
{
context=p_context;
}

在您的活动中执行以下操作:

testing t1=new testing(MainActivity.this);