错误:找不到符号方法getListAdapter()并且在操作栏上没有获得searchView如何解决此问题?

时间:2019-03-05 06:19:41

标签: android listview android-actionbar searchview

如何在带有搜索徽标的ActionBar上获取SearchView。此行会导致错误DBList item =(DBList)getListAdapter()。getItem(position); 错误:找不到符号方法setListAdapter(ArrayAdapter)

public class ShowDbList extends AppCompatActivity {

    JSONArray valArray;
    Thread thread;

    ConnectToWebService cw;
    private ProgressDialog dialog;
    JSONObject jsonObjectPunchInData;
    GetPermission objGetPermissions = null;
    SearchView searchView;
    ProgressDialog dialog1;
    String username;
    String PunchedInDatabase;
    ArrayAdapter<DBList> dbName;
    final private int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 2909;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        startService(new Intent(this,BackgroundService.class));
        BugSenseHandler.initAndStartSession(this, "8104fb89");
        Mint.initAndStartSession(this, "131a0997");
        setContentView(R.layout.dblist);

        cw = new ConnectToWebService(ShowDbList.this);

        Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
        setActionBar(toolbar);
        getActionBar().setTitle("Databases");

    }

    @Override
    public boolean onCreateOptionsMenu(final Menu menu) {

        getMenuInflater().inflate(R.menu.search, menu);

        final MenuItem item = menu.findItem(R.id.action_search);
        searchView = (SearchView) item.getActionView();
        SearchManager searchManager = (SearchManager) ShowDbList.this.getSystemService(Context.SEARCH_SERVICE);

        getMenuInflater().inflate(R.menu.logoutbutton, menu);

        SearchView.OnQueryTextListener queryTextListener = new       SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                menu.findItem(R.id.action_search).collapseActionView();

                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                 if (dbName != null)

                dbName.getFilter().filter(newText);
                return true;
            }
        };

        return super.onCreateOptionsMenu(menu);
    }


    private void getPreferences(String statusPreferences) {
        // TODO Auto-generated method stub
        try {
            JSONObject jsonPreferences = new JSONObject(statusPreferences);

            Preferences.saveIntegerPreferences(this, "COLLECTION_PICTURES",
             jsonPreferences.getInt("COLLECTION_PICTURES"));

            Preferences.saveStringPreferences(this, "THEME_CARRYOVER",                                jsonPreferences.getString("THEME_CARRYOVER"));


        } catch (JSONException e) {

            Toast.makeText(this,
                    "Network Connection is too slow please try later",
                    Toast.LENGTH_SHORT).show();
            return;

        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.logoutbutton:

  Intent logout = new Intent(getApplicationContext(),
                        LoginActivity.class);
                logout.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(logout);

                break;
            case R.id.action_punchin:
                if ((item.getIcon().getConstantState().equals(getResources()
                        .getDrawable(R.drawable.red).getConstantState())))
                    item.setIcon(getResources().getDrawable(R.drawable.green));
                else
                    item.setIcon(getResources().getDrawable(R.drawable.red));
                break;
        }

        return true;
    }

    @Override
    protected void onResume() {

        super.onResume();

        if (cw == null)
            cw = new ConnectToWebService(ShowDbList.this);

        new AsyncLogout(this).execute();

    }

    @Override
    protected void onStart() {
        super.onStart();

        FillDatabaseList();

    }


    protected void onListItemClick(ListView l, View v, int position, long id) {

        DBList item = (DBList) getListAdapter().getItem(position);
        String dbName = item.DatabaseName;
        String DBType= item.DBType;
        Integer userId = Integer.parseInt(item.UserID);// Integer.parseInt(valArray.getJSONObject(position)


        StringBuilder urlString = new StringBuilder();
        urlString.append("UserID=");
        urlString.append(userId);
        urlString.append("&DbName=");
        urlString.append(dbName);

        getMethod gmPreferences = getMethod.GetPreferences;
        String urlPreferences = cw.getUrl(urlString.toString(), gmPreferences);
        urlPreferences = urlPreferences.replaceAll(" ", "%20");

        new AsyncGetPreferences().execute(urlPreferences);

        getMethod gd = getMethod.GetPermissionsByUserID;

        String url = cw.getUrl(urlString.toString(), gd);
        url = url.replaceAll(" ", "%20");

        new AsyncGetPermissions().execute(url);

        Preferences.saveStringPreferences(ShowDbList.this, "DataBaseName",
                dbName);
        Preferences.saveStringPreferences(ShowDbList.this, "DatabaseType", DBType);
        Preferences.saveStringPreferences(ShowDbList.this, "DisplayName",
                item.DisplayName);
        Preferences.saveStringPreferences(ShowDbList.this, "MobileAdmin",
                item.MobileAdmin);



        Preferences.saveIntegerPreferences(ShowDbList.this, "UserId", userId);

    }


    private boolean hasPermission(String string) {
        // TODO Auto-generated method stub
        return false;
    }

    private void dismissProgressDialog() {
        if (dialog != null && dialog.isShowing()) {
            dialog.dismiss();
        }
    }

    @Override
    protected void onDestroy() {
        dismissProgressDialog();
        super.onDestroy();
    }

    private void FillDatabaseList() {
        try {
            JSONObject jsonObj = new JSONObject(
                    Preferences.getStringPreferences(ShowDbList.this, "DBLIST"));
            valArray = jsonObj.getJSONArray("DbList");
        } catch (JSONException e1) {

            e1.printStackTrace();
            BugSenseHandler.sendException(e1);
        }
        // List<DBList> output = new ArrayList<DBList>();

        dbName = new ArrayAdapter<DBList>(this, R.layout.dblist_item);

        for (Integer i = 0; i < valArray.length(); i++) {

            try {
                String objDbName = valArray.getJSONObject(i)
                        .getString("DataBaseName");
                String DBType=valArray.getJSONObject(i)
                        .getString("DatabaseType");

                String objDisplayName = valArray.getJSONObject(i)
                        .getString("DisplayName");
                String objUserId = valArray.getJSONObject(i)
                        .getString("UserID");
                String objMobileAdmin = valArray.getJSONObject(i)
                        .getString("MobileAdmin");

                DBList d = new DBList();
                d.DatabaseName = objDbName;
                d.DBType = DBType;
                d.DisplayName = objDisplayName;
                d.UserID = objUserId;
                d.MobileAdmin = objMobileAdmin;

                dbName.add(d);
            } catch (JSONException e) {

            }

        }

        setListAdapter(dbName);

    }

0 个答案:

没有答案