当我使用android文件'MultiAutoCompleteTextView.java'时,如何解决错误"com.android.internal.R无法解决",

hua*_*igu 17 android

我想在文件"MultiAutoCompleteTextView.java"上实现我自己的Tokenizer,

但是com.android.internal.R cannot be resolved当我尝试时遇到错误" "

将" MultiAutoCompleteTextView.java" 导入我的项目.

码:

public class MultiAutoCompleteTextView extends AutoCompleteTextView {
    private Tokenizer mTokenizer;

    public MultiAutoCompleteTextView(Context context) {
        this(context, null);
    }

    public MultiAutoCompleteTextView(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.autoCompleteTextViewStyle);
    }

    public MultiAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle)     {
        super(context, attrs, defStyle);
    }
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我没有研究解决这个问题的任何解决方案.如何纠正"com.android.internal.R.attr.autoCompleteTextViewStyle"我自己的attr?

谢谢你的任何建议.

yon*_*joy 12

你可以用

    public MultiAutoCompleteTextView(Context context, AttributeSet attrs) {
      this(context, attrs,
        Resources.getSystem().getIdentifier("autoCompleteTextViewStyle", "attr", "android");
    }
Run Code Online (Sandbox Code Playgroud)

您无法在编译时访问com.android.internal.R的id,但您可以在运行时访问已定义的内部资源并按名称获取资源.您应该知道这比直接访问慢,并且无法保证在未来的android版本或特定于供应商的版本中可以使用内部资源.


Pen*_*m10 0

我不确定您是否可以从 导入和引用internal。作为解决方法,从 android 源下载引用,并将其包含在您自己的资源中,并从您的包中引用。