从XML文件的ListView Android的字符串数组 [英] Android string-array from xml file to ListView

查看:157
本文介绍了从XML文件的ListView Android的字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,感谢您的答案!我是新为Android,这是我的问题;

我想利用字符串数组值列表视图。

程序正常工作与这些codeS:

 私有String [] = fiilliste {A,Ağlamak,Almak,B,BULMAK};
ArrayAdapter<串GT;适配器;
适配器=新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,fiilliste);
vlist.setAdapter(适配器);

不过,我想使用XML文件的字符串数组。这是我的xml文件:

 <?XML版本=1.0编码=UTF-8&GT?;
<资源>     <字符串数组名=网络连接>
        <项目>一种< /项目>
        <项目> Almak< /项目>
        <项目> Anlamak< /项目>
        <项目> Anlasmak< /项目>
        <项目> Anlatmak< /项目>
        <项目> Ayrilmak< /项目>
    < /字符串数组>< /资源>

和我刚换了code。与以下code,现在程序不起作用。

 的String [] = fiilliste getResources()getStringArray(R.array.fi)。

你能帮我解决这个问题呢?谢谢!

活动codeS:

 包com.gazi.tezproje;进口android.app.ActionBar;
进口android.app.Activity;
进口android.os.Bundle;
进口android.text.Editable;
进口android.text.TextWatcher;
进口android.view.Menu;
进口android.view.MenuInflater;
进口android.view.MenuItem;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.EditText;
进口android.widget.ImageButton;
进口android.widget.ListView;
进口android.widget.Toast;公共类动词延伸活动{公共布尔onCreateOptionsMenu(菜单菜单){
    动作条酒吧= getActionBar();
    bar.setDisplayHomeAsUpEnabled(真);       MenuInflater MENU1 = getMenuInflater();
          menu1.inflate(R.menu.info,菜单);
       返回super.onCreateOptionsMenu(菜单);
      }公共布尔onOptionsItemSelected(菜单项项){
       开关(item.getItemId()){
             案例R.id.menuinfo:
                 Toast.makeText(getApplicationContext(),的getString(R.string.verbs),Toast.LENGTH_LONG).show();
                  打破;
             案例android.R.id.home:
                 完();
                  打破; }
    返回false;}
私人的ListView VLIST;
ARA的EditText;
的String [] = fiilliste getResources()getStringArray(R.array.fi)。
ArrayAdapter<串GT;适配器;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.verbs);  VLIST =(ListView控件)findViewById(R.id.listView1);   适配器=新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,fiilliste); vlist.setAdapter(适配器);
  ARA =(EditText上)findViewById(R.id.editText1);
  vlist.setTextFilterEnabled(真);
 ara.addTextChangedListener(新TextWatcher(){      公共无效onTextChanged(CharSequence的CS,INT ARG1,ARG2 INT,INT ARG3){
          //当用户更改文本         。verbs.this.adapter.getFilter()过滤器(CS);
      }    @覆盖
    公共无效afterTextChanged(编辑为arg0){
        // TODO自动生成方法存根    }    @覆盖
    公共无效beforeTextChanged(CharSequence的为arg0,ARG1 INT,INT ARG2,
            INT ARG3){
        // TODO自动生成方法存根    }
 });}
}


解决方案

更改为

 的String [] fiilliste;
ArrayAdapter<串GT;适配器;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.verbs);
    fiilliste = getResources()getStringArray(R.array.fi)。
    //在移动的onCreate这

我假设你已经在字符串数组网络的strings.xml

您可能得到 NullPointerException异常。您需要 getResources活动上下文()。所以移动它内部的的onCreate

First of all, thank you for your answers! I'm new for Android and this is my problem;

I want to take values of string array to listview.

Program works fine with these codes:

private String [] fiilliste={"A","Ağlamak","Almak","B","Bulmak"};
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, fiilliste);
vlist.setAdapter(adapter);

But I wanna use xml file for string-array. This is my xml file:

<?xml version="1.0" encoding="utf-8"?>
<resources>

     <string-array name="fi">
        <item>A</item>
        <item>Almak</item>
        <item>Anlamak</item>
        <item>Anlasmak</item>
        <item>Anlatmak</item>
        <item>Ayrilmak</item>
    </string-array>

</resources>

and I just changed the code with following code, and now program doesn't work.

String [] fiilliste= getResources().getStringArray(R.array.fi);

Can you help me to solve this problem? Thank you!

Activity codes:

package com.gazi.tezproje;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;

public class verbs extends Activity {

public boolean onCreateOptionsMenu(Menu menu) {
    ActionBar bar=getActionBar(); 
    bar.setDisplayHomeAsUpEnabled(true);

       MenuInflater menu1 = getMenuInflater();
          menu1.inflate(R.menu.info, menu);


       return super.onCreateOptionsMenu(menu);
      }

public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
             case R.id.menuinfo:
                 Toast.makeText(getApplicationContext(),getString(R.string.verbs), Toast.LENGTH_LONG).show();
                  break; 
             case android.R.id.home:
                 finish();
                  break; }
    return false;}


private ListView vlist;
EditText ara;


String [] fiilliste= getResources().getStringArray(R.array.fi);
ArrayAdapter<String> adapter;

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

  vlist=(ListView)findViewById(R.id.listView1);

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

 vlist.setAdapter(adapter);
  ara = (EditText) findViewById(R.id.editText1);
  vlist.setTextFilterEnabled(true);
 ara.addTextChangedListener(new TextWatcher(){

      public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
          // When user changed the Text

         verbs.this.adapter.getFilter().filter(cs);   
      }

    @Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
            int arg3) {
        // TODO Auto-generated method stub

    }
 });

}
}  

解决方案

Change to

String [] fiilliste;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.verbs);
    fiilliste = getResources().getStringArray(R.array.fi); 
    // move this in onCreate

I assume you have the string array fi in strings.xml.

You probably got NullPointerException. You require activity context for getResources(). So move it inside onCreate.

这篇关于从XML文件的ListView Android的字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆