【问题标题】:android how can i format a arrayList<String>android 我如何格式化 arrayList<String>
【发布时间】:2013-08-28 03:56:01
【问题描述】:

我的arrayList格式有问题。我有一个参数有值

Licence_car:[[คย1453 กรุงเทพมหานคร], [รง2344 กรุงเทพมหานคร], [รน4679 กรุงเทพมหานคร]](数据是泰语)

我使用这个参数来设置列表首选项的条目,但它会像这样显示

我想删除字符是“[”和“]”来制作这样的变量Licence_car:[คย1453 กรุงเทพมหานคร, รง2344 กรุงเทพมหานคร, รน4679 กรุงเทพมหานคร]我该怎么做?

这是我列出首选项的代码集条目。

@SuppressWarnings("unchecked")
public void showCar(Context context,ArrayList<String> currentCars){
    SharedPreferences MYprefs = context.getSharedPreferences(PREFERENCES, PREFERENCE_MODE);

    if (null == currentCars) {
            currentCars = new ArrayList<String>();
        }
        try {
            currentCars = (ArrayList<String>) ObjectSerializer.deserialize(MYprefs.getString("car_licence_", ObjectSerializer.serialize(new ArrayList<String>())));
            //String[] car_list = currentCars.toCharArray;
            Log.d(TAG,"Licence_car:"+currentCars);  
            final CharSequence[] charSequenceCarEntry = currentCars.toArray(new CharSequence[currentCars.size()]);                    

            mCarDefault.setEntries(charSequenceCarEntry);
            mCarDefault.setEntryValues(charSequenceCarEntry); 
            mCarDelete.setEntries(charSequenceCarEntry);
            mCarDelete.setEntryValues(charSequenceCarEntry);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
}

我在 arrayList 中获得了一个首选项值,并将其格式化为 CharSequence[],以便将条目设置为列表首选项我认为我从这一点开始格式化,但我不知道该怎么做。

感谢您的任何回答,对不起我的英语。

【问题讨论】:

  • 在获取 currentCars 之前,您可以添加Log.d(TAG,MYprefs.getString("car_licence_","")); 并在此处发布结果
  • yes i do your log request but result log is '08-28 11:24:53.446: D/DebugLog(8251): kmonaaafhdhcaabdgkgbhggbcohfhegjgmcoebhchcgbhjemgjhdhehiibncbnjjmhgbjnadaaabejaaaehdgjhkgfhihaaaaaaaadhhaeaaaaaaamheaadefloaliieoalikcdbdedfddcaoaliiboalikdoalilioaliihoaljiaoalijhoalijooalikboalikloalilcoalijjoaliieoalikdfnheaadefloalikdoaliihdcdddedecaoaliiboalikdoalilioaliihoaljiaoalijhoalijooalikboalikloalilcoalijjoaliieoalikdfnheaadefloalikdoalijjdedgdhdjcaoaliiboalikdoalilioaliihoaljiaoalijhoalijooalikboalikloalilcoalijjoaliieoalikdfnhi'
  • 我不知道为什么日志显示这个文本也是古代文本?哈哈(笑话:D)
  • hi hi ;) 我要求记录它以了解首选字符串中的内容。但是,正如您所说,计算机说话很古老:D。不知道为什么。可能是泰语的英文表示。
  • 我认为你的想法是“可能是泰语的英语表示”

标签: android character-encoding sharedpreferences android-preferences charsequence


【解决方案1】:

开发者您好, 您可以在存储到数组列表之前格式化您的字符序列,hete 我正在提供示例代码,请使用它,所以这里是-

CharSequence[] charSequenceCarEntry = new CharSequence[10];         
        int startindex=charSequenceCarEntry.toString().indexOf("[");
        int endindex=charSequenceCarEntry.toString().indexOf("]");
        CharSequence cs =charSequenceCarEntry.toString().substring(startindex, endindex);

所以在你的情况下使用它-

currentCars = (ArrayList<String>) ObjectSerializer.deserialize(MYprefs.getString("car_licence_", ObjectSerializer.serialize(new ArrayList<String>())));
final CharSequence[] charSequenceCarEntry = currentCars.toArray(new CharSequence[currentCars.size()]);                    
int startindex=charSequenceCarEntry.toString().indexOf("[");
int endindex=charSequenceCarEntry.toString().indexOf("]");
CharSequence cs =charSequenceCarEntry.toString().substring(startindex, endindex);
mCarDefault.setEntries(cs);
mCarDefault.setEntryValues(cs); 
mCarDelete.setEntries(cs);
mCarDelete.setEntryValues(cs);

【讨论】:

  • 是的,听起来不错,但它不起作用,因为我有一个错误,startindex 值为 1,endindex 值为 0,但没有问题,我在下一个答案中解决了我的问题。谢谢你答案:D
【解决方案2】:

我已经解决了这个问题。我创建输入变量为list&lt;string&gt; car_entry; 类型以输入car_licence,输出结果为[คย1453 กรุงเทพมหานคร],因此我将尝试将类型变量更改为字符串,输出为คย1453 กรุงเทพมหานคร,因为charSequenceCarEntry 为Licence_car:[คย1453 กรุงเทพมหานคร, รง2344 กรุงเทพมหานคร, รน4679 กรุงเทพมหานคร]。现在好了完成再次感谢您的任何回答。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2017-03-11
    • 2013-07-02
    • 2012-05-13
    • 2014-08-12
    • 2016-01-13
    相关资源
    最近更新 更多