Android - ListView 中的字符串编码失败

Android - String encoding failed in ListView

我在 Windows 上使用 Android Studio 最新版本。
我使用 with DialogFragment 创建了对话框。 此对话框有一个 ListView.

我的代码如下:

public class DestDialogFragment extends DialogFragment
{
    View rootView;
    ListView mListView;
    ArrayAdapter<String> mAdapter;
    String[] listitems;

    public DestDialogFragment() {
        listitems = new String[] { "a", "b", "c", "d" }; // Actually, this array has my real country language strings.

    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.dialogfragment_destination, container, false);
        mListView = (ListView) rootView.findViewById(R.id.dest_listview);

        // dialog without title
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

        return rootView;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {

        super.onActivityCreated(savedInstanceState);


        mAdapter = new ArrayAdapter<>(getActivity(),
                android.R.layout.simple_list_item_1, listitems);

        mListView.setAdapter(mAdapter);
        mListView.setOnItemClickListener(onClickListItem);
    }

    private AdapterView.OnItemClickListener onClickListItem = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getActivity(), mAdapter.getItem(position),Toast.LENGTH_SHORT).show();

        }
    };
}



实际上,listitem[] 并不像"a", "b", "c", "d"。 它有 my real country language strings.

无论如何,我调试了我的项目。
调试器说 listitem[] 的值类似于 "????", "??????", "???????", "????" 这就是为什么我无法在设备上看到正确的结果。

所以我用谷歌搜索了一下。我试图在菜单 Settings
中更改 File Encoding 并尝试编辑文件 build.gradle。但是,这些方法对我不起作用...

我不知道为什么...你能帮帮我吗?

根本不要将文本标签放入 java class!为此使用 resource-xml 文件。 read this 明白了。

在您的代码中,您可以输入

    <string-array name="colors_array">
        <item>White</item>
        <item>Black</item>
        <item>Pink</item>
        <item>Red</item>
        <item>Violet</item>
    </string-array>

res/values-[your lang]/strings.xml 并在您的 java 代码中使用它:

String[] array = getContext().getResources().getStringArray( R.array.colors_array );
mAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, array );