gpt4 book ai didi

从 xml 文件到 ListView 的 Android 字符串数组

转载 作者:IT王子 更新时间:2023-10-29 00:08:52 24 4
gpt4 key购买 nike

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

我想将字符串数组的值带到 ListView 中。

程序可以很好地使用这些代码:

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);

但我想将 xml 文件用于字符串数组。这是我的 xml 文件:

<?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>

我只是用以下代码更改了代码,现在程序不起作用。

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

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

Activity 代码:

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*/
}
});
}
}

最佳答案

改成

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

我假设您在 strings.xml 中有字符串数组 fi。

您可能遇到了 NullPointerException。您需要 getResources() 的 Activity 上下文。所以把它移到 onCreate 里面。

关于从 xml 文件到 ListView 的 Android 字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com