gpt4 book ai didi

Android:BaseAdapter 不显示元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:41 27 4
gpt4 key购买 nike

无论如何,我正在努力制作的应用程序都有一个简单的列表和一个位于底部的按钮。我的问题是我的自定义 BaseAdapter 不显示元素。我知道,因为我的元素只是一个字符串,所以我可以使用 ArrayAdapter,但赋值需要它。代码:

class ListaOrase extends BaseAdapter{
private Activity context;
ArrayList<String> orase;

public ListaOrase(Activity context){
this.context=context;
orase=new ArrayList<String>();
}
public void add(String string){
orase.add(string);
}
public int getCount() {
// TODO Auto-generated method stub
return 0;
}

public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}


public View getView (int position, View convertView, ViewGroup list) {
View element;
if (convertView == null)
{
LayoutInflater inflater = context.getLayoutInflater();
element = inflater.inflate(R.layout.lista, null);
}
else element = convertView;
TextView elementLista=(TextView)element.findViewById(R.id.elementLista);
elementLista.setText(orase.get(position));
return element;
}

}
public class WeatherAppActivity extends ListActivity {

Button buton;
ListaOrase lista;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lista=new ListaOrase(this);
buton=(Button)findViewById(R.id.buton);
setListAdapter(lista);

lista.add("Bucuresti");
lista.add("Sibiu");

}
}

我的 XML 文件是这样的:

main.xml -- for the Activity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>



<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/list"
android:layout_alignParentTop="true"/>

<RelativeLayout
android:id="@+id/relative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/buton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="add"
android:text="Add"
android:layout_gravity=""
/>
</RelativeLayout>

</RelativeLayout>
lista.xml -- for the list
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/elementLista"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>


</LinearLayout>

“楼下”按钮会打开一个对话框,将项目添加到我的列表中。它显然不起作用,但我认为它是 BaseAdapter (ListaOrase) 本身,因为 Intent 不会抛出异常。如果我硬编码的项目能出现(Bucuresti 和 Sibiu),我将不胜感激。

我做错了什么?非常感谢你! :)

最佳答案

您的代码几乎完美的问题是在 getcount() 方法中返回 orase.size(),您返回 0,在 ListaOrase 类中添加未实现的方法。你的 ListaOrase 应该是这样的:

class ListaOrase extends BaseAdapter{
private Activity context;
ArrayList<String> orase;

public ListaOrase(Activity context){
this.context=context;
orase=new ArrayList<String>();
}
public void add(String string){
orase.add(string);
}

public View getView (int position, View convertView, ViewGroup list) {
View element;
if (convertView == null)
{
LayoutInflater inflater = context.getLayoutInflater();
element = inflater.inflate(R.layout.lista, null);
}
else element = convertView;
TextView elementLista=(TextView)element.findViewById(R.id.elementLista);
elementLista.setText(orase.get(position));
Log.e("",orase.get(position));
return element;
}
public int getCount() {
// TODO Auto-generated method stub
return orase.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

}

希望对你有帮助

关于Android:BaseAdapter 不显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368373/

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