Android 无法解析notifyDatasetChanged符号

Android 无法解析notifyDatasetChanged符号,android,arrays,listview,azure-sql-database,notifydatasetchanged,Android,Arrays,Listview,Azure Sql Database,Notifydatasetchanged,我正在使用一个应用程序,在该应用程序中,我从azure数据库中获取记录并将其插入数组中,listview必须显示我的数组。当我尝试调用方法notifyDatasetChanged时出现错误,下面是我的代码: Button search; EditText Esearch; ListView list; BaseAdapter ADAhere; Connection connect; List<Map<String,String>> MyData = new Ar

我正在使用一个应用程序,在该应用程序中,我从azure数据库中获取记录并将其插入数组中,
listview
必须显示我的数组。当我尝试调用方法
notifyDatasetChanged
时出现错误,下面是我的代码:

    Button search;
EditText Esearch;
ListView list;
BaseAdapter ADAhere;
Connection connect;

List<Map<String,String>> MyData = new ArrayList();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.srail, container, false);
    search = (Button)rootView.findViewById(R.id.btnSearch);
    Esearch = (EditText)rootView.findViewById(R.id.srch);
    list = (ListView)rootView.findViewById(R.id.view);

    search.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CheckLogin checkLogin = new CheckLogin();
            checkLogin.execute("");






            String[] fromwhere = { "NAME","PRICE","RANGE","SUPPLIER","SIZE" };

            int[] viewswhere = {R.id.Name_txtView , R.id.price_txtView,R.id.Range_txtView,R.id.size_txtView,R.id.supplier_txtView};



            ADAhere = new SimpleAdapter(getActivity(), MyData,R.layout.list_products, fromwhere, viewswhere);



            list.setAdapter(ADAhere);






        }
    });


    return rootView;
}


public class CheckLogin extends AsyncTask<String, String, String> {
    String z = "";
    Boolean isSuccess = false;

    ProgressDialog progress;

    @Override
    protected void onPreExecute() {
        progress = ProgressDialog.show(getActivity(), "Searching...",
                "Listview Loading! Please Wait...", true);
    }

    @Override
    protected void onPostExecute(String r) {
        progress.dismiss();
        Toast.makeText(getActivity(), r, Toast.LENGTH_SHORT).show();
        if (isSuccess) {
            Toast.makeText(getActivity(), "Search Successfull", Toast.LENGTH_LONG).show();


            //finish();
        }
    }

    @Override
    protected String doInBackground(String... strings) {
        String Search = search.getText().toString();





            try {
                ConnectionHelper conStr = new ConnectionHelper();
                connect = conStr.connectionclass();        // Connect to database
                if (connect == null) {
                    z = "Check Your Internet Access!";
                } else {
                    // Change below query according to your own database.
                    String query = "select * from cc_rail where rail_name='" + Search.toString() +"' ";
                    Statement stmt = connect.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    while (rs.next()) {
                        Map<String, String> datanum = new HashMap<String, String>();
                        datanum.put("NAME", rs.getString("RAIL_NAME"));

                        datanum.put("PRICE", rs.getString("RAIL_UNIT_PRICE"));

                        datanum.put("RANGE", rs.getString("RAIL_RANGE"));

                        datanum.put("SUPPLIER", rs.getString("RAIL_SUPPLIER"));

                        datanum.put("SIZE", rs.getString("RAIL_SIZE"));
                        MyData.add(datanum);

                    }
                    ADAhere.notifyDatasetChanged();


                    z = " successful";
                    isSuccess = true;
                    connect.close();
                }
            } catch (Exception ex) {
                isSuccess = false;
                z = ex.getMessage();
            }

            return z;
        }


}
按钮搜索;
编辑文本搜索;
列表视图列表;
在这里的基地;
连接;
List MyData=new ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.srail,container,false);
search=(按钮)rootView.findviewbyd(R.id.btnSearch);
Esearch=(EditText)rootView.findviewbyd(R.id.srch);
list=(ListView)rootView.findViewById(R.id.view);
search.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
CheckLogin CheckLogin=新建CheckLogin();
checkLogin.execute(“”);
字符串[]fromwhere={“名称”、“价格”、“范围”、“供应商”、“大小”};
int[]viewswhere={R.id.Name\u txtView,R.id.price\u txtView,R.id.Range\u txtView,R.id.size\u txtView,R.id.supplier\u txtView};
ADAhere=new simpledapter(getActivity(),MyData,R.layout.list_products,fromwhere,viewswhere);
list.setAdapter(ADAhere);
}
});
返回rootView;
}
公共类CheckLogin扩展异步任务{
字符串z=“”;
布尔值isSuccess=false;
进程对话进程;
@凌驾
受保护的void onPreExecute(){
progress=ProgressDialog.show(getActivity(),“搜索…”,
“正在加载Listview!请稍候…”,true);
}
@凌驾
受保护的void onPostExecute(字符串r){
进步。解散();
Toast.makeText(getActivity(),r,Toast.LENGTH_SHORT).show();
如果(isSuccess){
Toast.makeText(getActivity(),“搜索成功”,Toast.LENGTH_LONG.show();
//完成();
}
}
@凌驾
受保护的字符串背景(字符串…字符串){
字符串搜索=Search.getText().toString();
试一试{
ConnectionHelper conStr=新的ConnectionHelper();
connect=conStr.connectionclass();//连接到数据库
if(connect==null){
z=“检查您的互联网接入!”;
}否则{
//根据您自己的数据库更改以下查询。
String query=“从cc_rail中选择*,其中rail_name=”+Search.toString()+”;
语句stmt=connect.createStatement();
ResultSet rs=stmt.executeQuery(查询);
while(rs.next()){
Map datanum=new HashMap();
datanum.put(“NAME”,rs.getString(“RAIL_NAME”);
datanum.put(“价格”,rs.getString(“铁路单价”);
datanum.put(“RANGE”,rs.getString(“RAIL_RANGE”);
datanum.put(“供应商”,rs.getString(“铁路供应商”);
datanum.put(“大小”,rs.getString(“轨道大小”);
添加(datanum);
}
ADAhere.notifyDatasetChanged();
z=“成功”;
isSuccess=true;
connect.close();
}
}捕获(例外情况除外){
isSuccess=false;
z=ex.getMessage();
}
返回z;
}
}
错误出现在代码的这一部分:

            String query = "select * from cc_rail where rail_name='" + Search.toString() +"' ";
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                Map<String, String> datanum = new HashMap<String, String>();
                datanum.put("NAME", rs.getString("RAIL_NAME"));

                datanum.put("PRICE", rs.getString("RAIL_UNIT_PRICE"));

                datanum.put("RANGE", rs.getString("RAIL_RANGE"));

                datanum.put("SUPPLIER", rs.getString("RAIL_SUPPLIER"));

                datanum.put("SIZE", rs.getString("RAIL_SIZE"));
                MyData.add(datanum);

            }
            ADAhere.notifyDatasetChanged();
String query=“select*from cc_rail where rail_name=”+Search.toString()+”;
语句stmt=connect.createStatement();
ResultSet rs=stmt.executeQuery(查询);
while(rs.next()){
Map datanum=new HashMap();
datanum.put(“NAME”,rs.getString(“RAIL_NAME”);
datanum.put(“价格”,rs.getString(“铁路单价”);
datanum.put(“RANGE”,rs.getString(“RAIL_RANGE”);
datanum.put(“供应商”,rs.getString(“铁路供应商”);
datanum.put(“大小”,rs.getString(“轨道大小”);
添加(datanum);
}
ADAhere.notifyDatasetChanged();
写入

ADAhere.notifyDataSetChanged()

而不是

ADAhere.notifyDatasetChanged()

你写的是小的
s
,而不是
s


onPostExecute
中编写此代码比在
doInBackground

中编写此代码更好。您的问题在于编写方法名称的方式(您在集合中使用了一个小s),因此它无法识别它是正常的

换行

ADAhere.notifyDatasetChanged();


您已创建BaseAdapter并尝试通知适配器。创建一个ADAhere对象作为扩展BaseAdapter的SimpleAdaptererror@JyotiJK它告诉我无法解析symbol
notifyDatasetChanged
在UI线程
ADAhere.notifyDatasetChanged()中调用此错误并在执行异步任务之前对其进行初始化是的,您不能从异步任务调用此方法。将
ResultSet
返回到
onPostExecute()
并调用
ADAhere.notifyDatasetChanged()从那里开始。
ADAhere.notifyDataSetChanged();