android ListView 将隐藏值从一个 Activity 传递到另一个

标签 android mysql json listview android-listview

我有一个用 ArrayAdapter 创建的 ListView,它使用 JSON 解析从 MySQL 数据库中获取不同的值。现在,当用户单击列表中的项目时,我将其中一些值传递给下一个 Activity :

@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
    Intent intent = new Intent(ListActivity.this, ListingDescription.class);

    String place_name = ((TextView) v.findViewById(R.id.textView3)).getText().toString();

    intent.putExtra("place_name",place_name);
    startActivity(intent);

工作正常,但现在我想从 MySQL 数据库中获取另外 2 个不应显示在 ListView 中的值。我应该走哪条路? 我尝试在 ArrayAdapter 中添加值,但后来我意识到我是通过获取 TextView 信息来传递这些值的。我如何从 ArrayList 适配器中传递一些信息而不在 ListView 中显示? 也许有不同的方法来做到这一点?

这是我解析 JSON 的方式:

for (int i=0; i<theJson.length(); i++){
    Places place = new Places();
    JSONObject jRealObject = theJson.getJSONObject(i);

    place.setImage(jRealObject.getString("image"));
    place.setName(jRealObject.getString("name"));
    place.setLocation_address(jRealObject.getString("location_address"));
    place.setOpen_until(jRealObject.getString("open_until"));

    placeslist.add(place);

我也考虑过将值作为不可见的放置在布局中,但我认为这绝对不是可行的方法。我将不胜感激!

最佳答案

在 Places 中创建一个 getter 方法,因为您已经有了 setter 方法。

List placeslist = new ArrayList<>();

将地点列表添加到您的适配器。

OnItemClick。

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    String image = adapter.getItem(position).getImage();
    String name= adapter.getItem(position).getName();
 //use these in intents
}

编辑

   final CustomAdapter adapter = new CustomAdapter(this, R.layout.activity_list_view, placeslist );
        ListView listView = (ListView) findViewById(R.id.radioGroup);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String image = adapter.getItem(position).getImage();
                String name= adapter.getItem(position).getName();
            }
        });
    }

关于android ListView 将隐藏值从一个 Activity 传递到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227320/

相关文章:

json - 类型jsont中, 'int'类型不是 'String'类型的子类型|解码问题

asp.net - .Net AJAX 中是否有内置方式将对象手动序列化为 JSON 字符串?

尽管使用内容提供程序和顺序数据库访问,android sqlite "database is locked"错误

mysql - Sequelize 自动为 NOT NULL 列设置默认值

php 视频和照片上传 : storing in database vs. uploading

javascript - 构建动态 json 树

android - Android Studio 3.4 中不支持的方法 : AndroidProject. getVariantNames()

java - Android:缩小/放大 GridLayout

android - 带有 dagger2 的 AppWidgetProvider

PHP MySQL 使用 JsonString (Array) 插入记录