如何在另一个活动类中获取列表项的rowID?

时间:2015-03-22 16:17:22

标签: android

在我的主要活动中,我有一个数据库项目的列表视图,当我长按列表中的项目时,它会打开一个新活动,允许您编辑单击的项目。

我遇到的问题是我不太确定如何将rowID /主键的信息提供给另一个活动java类,以便我可以开始在该类中操作,例如将初始值设置为当前行信息,然后能够对其应用更新。

这可以帮助你帮助我,这是我必须带我参加我的新活动

 dialog.setNegativeButton(R.string.dialogEdit,
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    long id = idInDB;
                    Intent intent = new Intent(MainActivity.this, edit_expense.class);
                    startActivity(intent);



                }
            });

3 个答案:

答案 0 :(得分:0)

我假设id是您要传递给其他活动的ID,请使用Intent extras传递它。 intent.putExtra("key", id);

并获取其他活动的值:

Intent intent = getIntent();
long id = intent.getLongExtra("key", -1);

意图参考:https://developer.android.com/reference/android/content/Intent.html

答案 1 :(得分:0)

onClick使用putExtra

发送行id
intent.putExtra("rowid", rowid);

在第二个活动中获取onCreate()

中的额外字符串
String rowid = getIntent().getExtras().getString("rowid");

答案 2 :(得分:0)

希望您的列表行中包含 ID textView。 因此,当您加载listView时,每一行都会在textView中添加自己的唯一ID。现在,当您单击/按住任何特定的listItem时,它将触发click事件并将ID检索到String rowID中。现在,您可以使用intent传递此ID。

list.setOnLongClickListener(new AdapterView.OnLongClickListener() {
            @Override
            public void onLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                String rowID =((TextView) view.findViewById(R.id.rowID)).getText().toString();
                Intent nextActivity = new Intent();
                nextActivity.putExtra("id",rowID);
                startActivity();
}