android 无法在CursorAdapter子类中使用getResources()

uqjltbpv  于 2023-05-27  发布在  Android
关注(0)|答案(4)|浏览(130)

请问为什么我的Eclipse写getResources()错误??它是这样写的:The method getResources() is undefined for the type PredmetCursorAdapter
有什么不对吗??在所有的线路与此方法我有那个错误,但在其他类都是好的

public class PredmetCursorAdapter extends CursorAdapter {

public PredmetCursorAdapter(Context context, Cursor c) {
    super(context, c);
    // TODO Auto-generated constructor stub
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    // TODO Auto-generated method stub
    TextView textViewUlohaName = (TextView) view.findViewById(R.id.nazovPredmetu);
    textViewUlohaName.setText(cursor.getString(cursor.getColumnIndex("nazov")));

    String den;
    int dlzka = Integer.parseInt(cursor.getString(cursor.getColumnIndex("dlzka")));

    switch (dlzka)  
    {
        case 0:
            den = getResources().getString(R.string.pondelok);
            break;
        case 1:
            den = getResources().getString(R.string.utorok);
            break;
        case 2:
            den = getResources().getString(R.string.streda);
            break;
        case 3:
            den = getResources().getString(R.string.stvrtok);
            break;
        case 4:
            den = getResources().getString(R.string.piatok);
            break;
    }

    TextView textViewUlohaDate = (TextView) view.findViewById(R.id.denPredmetu);
    textViewUlohaDate.setText(den);

    // upravit hodnotu podla [od - do]
    TextView textViewUlohaTime = (TextView) view.findViewById(R.id.casPredmetu);
    textViewUlohaTime.setText(cursor.getString(cursor.getColumnIndex("hodina")));

}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    // TODO Auto-generated method stub

    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    View retView = inflater.inflate(R.layout.predmet_simple_list_item, parent,
            false);

    return retView;
}

public void dni ()
{

}
}
pbwdgjma

pbwdgjma1#

您必须在PredmetCursorAdapter中使用Context访问resources,如下所示:

switch (dlzka)  
{
    case 0:
        den = context.getResources().getString(R.string.pondelok);
        break;
    case 1:
        den = context.getResources().getString(R.string.utorok);
        break;
    case 2:
        den = context.getResources().getString(R.string.streda);
        break;
    case 3:
        den = context.getResources().getString(R.string.stvrtok);
        break;
    case 4:
        den = context.getResources().getString(R.string.piatok);
        break;
}

欲了解更多信息,请访问这个漂亮的帖子。

zz2j4svz

zz2j4svz2#

试试这个。
使用context.getResources()这样做,剩余的所有case

case 0:
        den = context.getResources().getString(R.string.pondelok);
        break;
odopli94

odopli943#

如果您试图从活动中获取资源,则可以调用

getResource()

但是如果你试图从任何类中使用getResource(),那么你可以在Context的对象上调用它,你可以从Activity传递到你想要调用getResource()的类。
例如,如果Context是mContext,则使用

mContext.getResource().
flmtquvp

flmtquvp4#

Context必须添加到getResources()之前,因为context会通知您要获取哪个Activity的引用。
在很多情况下,即使我们inflate()一个布局,我们也需要传递引用。context.getMenuInflater().inflate(R.menu.main, menu);
所以你应该用途:context.getResources()

相关问题