Làm sao để hiện thị tiếng Việt trong ListView của Android?

Chào mọi người, cho em hỏi : Làm sao để hiện thị tiếng Việt trong ListView của Android?

Em đã viết đoạn code : <?xml version="1.0" encoding="utf-8"?> trong file AndroidMainfest.xml và layout tương ứng nhưng vẫn bị lỗi như trong ảnh.
Em cảm ơn mọi người. :smile:

Ninh gửi đoạn code add text vào listview xem thử, Đạt chưa làm cái này bao giờ nên cần xem code mới có idea :smiley:

Ở Android Studio, bạn vào File> Setting, trong setting bạn search “file encoding”, rồi bạn chọn hết UTF-8 xem sao :smiley:

2 Likes

Listview này bạn đổ dữ liẹu từ array hả ?

1 Like

Cái này chịu, chả bị bao giơ, tiếng Việt vẫn ngon lành cành đào :smile:

1 Like

@Ninh_Le bạn làm được chưa :smiley:
Nếu có câu trả lời đúng trong topic này thì bạn accept answer nó đi, hoặc nếu bạn làm được rồi thì ghi giải pháp ra đây để mọi người tham khảo :">

P/s: Trước mình cũng bị như này, dùng string ở trong strings.xml thì không sao, còn dùng chuỗi trực tiếp trong java file thì bị lỗi font như vậy. Cách làm là chuột phải vào chỗ soạn thảo code của file đó, và chọn “file encoding”, rồi chọn utf-8 ( hình như utf-8 với ISO-8859-1 là như nhau đúng ko nhỉ @@)

Gửi anh @ltd :smile:
File activity của em như sau:

package com.windybook.foreground;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.Arrays;


public class ListViewDemo extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view_demo);

        // my code here!
        final TextView myTextView = (TextView) findViewById(R.id.tvShow) ;
        ListView myListView = (ListView) findViewById(R.id.lvPerson) ;

        String arr[]  = {"Tí" , "Tèo" , "Tủn"} ;

        ArrayList<String> data = new ArrayList<String>(Arrays.asList(arr)) ;

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,  data) ;

        myListView.setAdapter(adapter);
        myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                              @Override
                                              public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                                    myTextView.setText("Position "+position +" id " + id);
                                              }
                                          }
        );
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_list_view_demo, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}



File xml của em như sau:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.windybook.foreground.ListViewDemo"

    >

    <TextView android:text="@string/hello_world"
        android:id="@+id/tvShow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ListView
        android:id="@+id/lvPerson"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    </ListView>

</LinearLayout>

Vâng anh, dữ liệu em từ array, mà cụ thể là ArrayList:


 String arr[]  = {"Tí" , "Tèo" , "Tủn"} ;

        ArrayList<String> data = new ArrayList<String>(Arrays.asList(arr)) ;

Đã thử và không thành công :sweat_smile:

Vẫn còn mục Project Encoding và mục default ở dưới kìa :v

Chỉnh 3 cái này đủ chưa @TTmagic :flushed: Chỉnh 3 cái này thì kết quả vẫn không hiển thị được.

ỉnh

@Ninh_Le vậy thì đây có thể là cách cuối =)) mình đã làm và thành công :v
À, trước khi thử thì thử build lại, nếu ko đc hãy thử như trên nhé :v

1 Like

Cách của bác đúng rồi đấy :smile:
Nhưng mấy lần trước chỉnh xong, Apply, OK rồi Build lại nhưng vẫn lỗi. Phải thoát Android Studio và mở lại mới sửa được. :smile:
Em cảm ơn bác nhiều.

2 Likes

Cái này hình như lúc đầu tạo project android studio sẽ warning nhưng chắc bác bỏ qua :smile:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?