通过活动开关传递信息



我在弄清楚如何通过活动开关传递信息时遇到了麻烦。
我当前有一个活动,我可以在其中将客户端添加到数据库,并且我有一个活动来查看 ListView 中的所有客户端。

我想要的是,当用户单击 ListView 中的客户端时,它返回到 addclient 活动,并从数据库中填写所有字段。

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

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);
        }
    });
}
}
您需要

使客户端类信息实现Parcelable类。这样,您就可以将该信息添加到用于打开第二个活动的Intent中。从第二个活动中,您可以从通过调用获得的捆绑包中获取此信息getIntent()

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

当他单击列表视图中的客户端以使其返回到 AddClient 活动但从数据库中填写所有字段

当您"返回"时,您正在执行SELECT *,因此假设它在数据库中进行了更新,则所有内容都将被正确选择和更新。

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

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

另外,请使用getReadableDatabase()光标适配器

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

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);
        }
    });

最新更新