通过活动开关传递信息

时间:2017-05-28 21:19:10

标签: java android listview

我无法弄清楚如何通过活动开关传递信息 我目前有一个Activity,我可以在其中添加一个客户端到数据库,我有一个Activity来查看ListView中的所有客户端。

我想要的是当用户点击ListView中的客户端以使其返回到addclient Activity时,所有字段都从数据库填充。

这是用户查看客户端的活动

public class ViewClientActivity extends Activity
{
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewclient_activity);

    DBHandler handler = new DBHandler(this, null, null, 1);
    SQLiteDatabase db = handler.getWritableDatabase();
    final Cursor ClientCursor = db.rawQuery("SELECT  * FROM clients", null);
    ListView allClients = (ListView) findViewById(R.id.allClients);
    final ClientCursorAdapter clientAdapter = new ClientCursorAdapter(this, ClientCursor);

    allClients.setAdapter(clientAdapter);

    allClients.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            Intent AddClientActivity = new Intent(getApplicationContext(), AddClientActivity.class);
            startActivity(AddClientActivity);
        }
    });

}
}

3 个答案:

答案 0 :(得分:1)

您需要使客户端类信息实现Parcelable类。这样,您就可以将该信息添加到用于打开第二个Activity的Intent中。在第二个活动中,您可以通过调用getIntent()

从获得的包中获取此信息

要将Parcelable数据添加到de intent使用intent.putExtra()并从中获取,请使用intent.getParcelableExtra()

答案 1 :(得分:0)

  

当他点击列表视图中的客户端时,它返回到addclient活动但是从数据库中填写了所有字段

当你&#34;返回&#34;时,你正在做SELECT *,所以一切都将被正确选择和更新,假设它已在数据库中更新。

您的任务存在于AddClientActivity内,以创建new DBHandler并相应地更新您的数据。

如果您需要传递任何内容,那么它将是您点击的行的ID,您可以在setTag类的ClientCursorAdapter方法中使用getView膨胀的观点。然后,(Long) view.getTag()在点击中接收。

另外,请将getReadableDatabase()用于CursorAdapter

答案 2 :(得分:0)

这就是我最终做的传递我需要的信息

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
        {
            IMAGES = imagesPath[0] + "|" + imagesPath[1] + "|" + imagesPath[2] + "|" +
                        imagesPath[3] + "|" + imagesPath[4] + "|" + imagesPath[5];

            Intent intent = new Intent(AddClientActivity.this, ImageViewActivity.class);
            intent.putExtra("IMAGES", IMAGES);
            intent.putExtra("POSITION", position);
            startActivity(intent);
        }
    });