0

以下のコードを使用して、SQLite データベースから Android Listview を作成しようとしています。同じクラス内の配列からこれを成功させました。ただし、この場合、別のクラスから返された文字列配列から値を設定しようとしています。私はこれに慣れていないので、これを完全に間違っている可能性があります。誰かがコードを見て、私が間違っていることをアドバイスできれば、それは素晴らしいことです。

私はそれを終わらせるという深刻なプレッシャーにさらされているので、これでどんな助けも本当に感謝しています、ありがとう!

LoginActivity クラス

public class LoginActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    final EditText txtUserName = (EditText)findViewById(R.id.txtUsername);
    final EditText txtPassword = (EditText)findViewById(R.id.txtPassword);
    Button btnLogin = (Button)findViewById(R.id.btnLogin);
    btnLogin.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            String username = txtUserName.getText().toString();
            String password = txtPassword.getText().toString();

            try{
                if(username.length() > 0 && password.length() >0)
                {
                    DBUserAdapter dbUser = new DBUserAdapter(LoginActivity.this);
                    dbUser.open();

                    int UID = dbUser.Login(username, password);

                    if(UID != -1)
                    {
                        // TEST
                        //int UID = dbUser.getUserID(username, password);
                        //getSitesByClientname(UID);
                        // END TEST
                        // MY TEST CODE TO CHANGE ACTIVITY TO CLIENT SITES
                                Intent myIntent = new Intent(LoginActivity.this, ClientSites.class);
                                //Intent myIntent = new Intent(getApplicationContext(), ClientSites.class);
                                myIntent.putExtra("userID", UID);
                                startActivity(myIntent);
                                //finish();
                        // END MY TEST CODE

                        //Cursor UserID = dbUser.getUserID();

                        Toast.makeText(LoginActivity.this,"Successfully Logged In", Toast.LENGTH_LONG).show();
                    }else{
                        Toast.makeText(LoginActivity.this,"Invalid Username/Password", Toast.LENGTH_LONG).show();
                    }
                    dbUser.close();
                }

            }catch(Exception e)
            {
                Toast.makeText(LoginActivity.this,e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }

    });
}

}

文字列配列を返すDBHelper クラスのメソッド

public String[] getSitesByClientname(String id) {
    String[] args={id};

    //return db.rawQuery("SELECT client_sitename FROM " + CLIENT_SITES_TABLE + " WHERE client_id=?", args);

        Cursor myCursor = db.rawQuery("SELECT client_sitename FROM " + CLIENT_SITES_TABLE + " WHERE client_id=?", args);
        // loop through all rows and adding to array
        int count;
        count = myCursor.getCount();
        final String[] results = new String[count];
        results[0] = new String();
        int i = 0;
        try{
            if (myCursor.moveToFirst()) {
                do {
                    results[i] = myCursor.getString(myCursor.getColumnIndex("client_sitename"));

                } while (myCursor.moveToNext());
            }   
        }finally{
            myCursor.close();
        }   
        db.close();
        // return results array
        return results; 

ClientSites クラス

public class ClientSites extends ListActivity {

    public final static String ID_EXTRA="com.example.loginfromlocal._ID";

    private DBUserAdapter dbHelper = null;
    //private Cursor ourCursor = null;
    private ArrayAdapter<String> adapter=null;


    //@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
        try
        {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.client_sites);

            Intent i = getIntent();
            String uID = String.valueOf(i.getIntExtra("userID", 0));
            //int uID = i.getIntExtra("userID", 0);

            //ListView myListView = (ListView)findViewById(R.id.myListView);

            dbHelper = new DBUserAdapter(this);

            dbHelper.createDatabase();

            //dbHelper.openDataBase();
            dbHelper.open();

            String[] results = dbHelper.getSitesByClientname(uID);

            //setListAdapter(new ArrayAdapter<String>(ClientSites.this, R.id.myListView, results));
            //adapter = new ArrayAdapter<String>(ClientSites.this, R.id.myListView, results);
            setListAdapter(new ArrayAdapter<String>(ClientSites.this, R.layout.client_sites, results));

            //ListView myListView = (ListView)findViewById(R.id.myListView);
            ListView listView = getListView();
            listView.setTextFilterEnabled(true);

            //@SuppressWarnings("deprecation") 
            //SimpleCursorAdapter adapter = new SimpleCursorAdapter(getBaseContext(), R.id.myListView, null, null, null);
            //CursorAdapter adapter = new SimpleCursorAdapter(this, R.id.myListView, null, null, null, 0);
            //adapter = new Adapter(ourCursor);

            //Toast.makeText(ClientSites.this, "Booo!!!", Toast.LENGTH_LONG).show();

            //myListView.setAdapter(adapter);

            //myListView.setOnItemClickListener(onListClick);


        }
        catch (Exception e)
        {
            Log.e("ERROR", "XXERROR IN CODE: " + e.toString());
            e.printStackTrace();
        }
    }

}

これについての助けは素晴らしいでしょう、ありがとう!

4

1 に答える 1