gpt4 book ai didi

java - 在其他类中使用抽象变量

转载 作者:行者123 更新时间:2023-12-01 16:58:51 26 4
gpt4 key购买 nike

我是java和android开发的新手。我创建了一个抽象类来在我的应用程序中显示 ListView 。我的想法是我将使用通用 ListView 仅更改其适配器。但我没有得到定义的 ListView 在扩展它的类中使用的抽象类。请帮助我

抽象类代码

 public abstract class GeneralListView extends MasterFragment {

protected ListView listView;



@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.common_list, container, false);
listView = (ListView) view.findViewById(R.id.lv_common_list);
return view;
}

public abstract void initializeList();

public ListView getListView() {
return listView;
}


}

扩展上述类的类

 public class Test extends GeneralListView {

private ListView listView;

@Override
public void initializeList() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(contextFragment, android.R.layout.activity_list_item, new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "a", "b", "c", "d", "e", "f", "g", "h", "i"});
listView.setAdapter(adapter);

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getListView();
initializeList();
}

@Override
public ListView getListView() {
return listView;
}
}

异常

listView.setAdapter(adapter); //null pointer exception

最佳答案

无需在子类“Test”类中​​重写 getListVIew(),也不需要私有(private) ListView listView; “测试”类中的属性,

要调用父类(super class)中的方法或变量,您可以直接调用它,如果您没有使用任何同名的变量,您可以使用 super 关键字调用 listView

super.listView 

并使用 super 关键字调用 getListView() 方法

super.getListView();

关于java - 在其他类中使用抽象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29408201/

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