使用Intent Extras

时间:2016-03-10 10:57:40

标签: android android-intent

我有两项活动。一个人的表格很少EditText秒。这些输入中的值应来自主列表,因此,在EditText的焦点上,我将控件带到另一个使用' android.support.v7.widget.SearchView with a ListView的活动`

EditText的OnFocus我使用以下代码调用SearchActivity:

    ETVehicleRegnLoc.setOnFocusChangeListener(new View.OnFocusChangeListener()  {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                startActivity(new Intent(getApplicationContext(), SearchActivity.class).putExtra("fieldName","RegnNum"));
            }
        }
    });

选择值后,我将使用以下代码

发回值
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {

                Intent intent = new Intent(SearchActivity.this , VehicleActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("SelectedVal", dataArray.get(arg2).toString());
                intent.putExtras(bundle);
                startActivity(intent);

//                Toast.makeText(SearchActivity.this, dataArray.get(arg2).toString(), Toast.LENGTH_SHORT).show();
            }
        });

这很好用。但是因为我通过VehicleActivity调用Intent,它清除了已经输入的整个值的形式。

但是当我按下&#34;返回&#34;移动设备上的按钮,值仍然存在。但是没有达到前往SearchActivity的目的:)

我想我必须模拟后按钮按下。我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用

startActivityForResult(new Intent(getApplicationContext(), SearchActivity.class).putExtra("fieldName","RegnNum"),2);

而不是

startActivity(new Intent(getApplicationContext(), SearchActivity.class).putExtra("fieldName","RegnNum"));

在onItemClickListener中执行

Intent intent=new Intent();  
                intent.putExtra("MESSAGE",message);  
                setResult(2,intent);  
                finish();

获取VehicleActivity的OnActivityForResult中的数据