如何显示从 Activity A 到 Activity B 的 seekBar 值和选定的微调项?

How to display seekBar value and selected spinner item from Activity A to Activity B?

我在 Activity A 中有一个 listView ,它的值是从 Activity B.When 列表中返回的,单击该列表,它将意图 Activity B 进行编辑。

Activity B

 @Override
 protected void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.add_details_information);
         addItemsOnSpinner();
         if(getIntent().getExtras()!=null)  // if has value pass from A
          {
              final String Project1=getIntent().getStringExtra("ReceiveProject");
              final String Description1=getIntent().getStringExtra("ReceiveDescription");
              final String Progress1=getIntent().getStringExtra("ReceiveProgress");
              final String TimeIn1=getIntent().getStringExtra("ReceiveTimeIn");
              final String TimeOut1=getIntent().getStringExtra("ReceiveTimeOut");
              //project.setText(Project1);
              description.setText(Description1);
              //progressText.setText("Covered:")
              timeIn.setText(TimeIn1);
              timeOut.setText(TimeOut1);
              }

            save.setOnClickListener(new View.OnClickListener()
             {  // return to A

           @Override
          public void onClick(View v)
          {
            Intent returnIntent=new Intent();
            Project=project.getSelectedItem().toString(); // Spinner Value
            Description=description.getText().toString(); //from editText
            progress=seekBar.getProgress(); // From SeekBar
            returnIntent.putExtra("Project",Project);
            returnIntent.putExtra("Description", Description);
            returnIntent.putExtra("progress", progress);
            Toast.makeText(getApplicationContext(), progress+"", Toast.LENGTH_LONG).show();
            returnIntent.putExtra("TimeIn", TimeIn);
            returnIntent.putExtra("TimeOut",TimeOut);
            setResult(Activity.RESULT_OK,returnIntent);
            finish();
            }
           });

 public void  addItemsOnSpinner()
    {
        project=(Spinner)findViewById(R.id.SpinnerProject);
        List<String> list = new ArrayList<String>();
        list.add("TRN-XXX-XXX");
        list.add("Pro-XXX-XXX);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.spinner_item, list);
        //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        project.setAdapter(adapter);
    }

Activity一个

   listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { // if listView is clicked
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                mClickedPosition = position;
                Intent i = new Intent(getApplication(), Add_Details_Information.class);
                i.putExtra("ReceiveProject", ReceiveProject);
                i.putExtra("ReceiveDescription", ReceiveDescription);
                i.putExtra("ReceiveProgress", ReceiveProgress);
                i.putExtra("ReceiveTimeIn", ReceiveTimeIn);
                i.putExtra("ReceiveTimeOut", ReceiveTimeOut);
                startActivityForResult(i,PROJECT_REQUEST_CODE);
            }
        });
    }

我知道我们可以使用 setText 来显示从 A 到 B 的传递值 editText,但是 spinnerseekBar 值呢?

这是 Activity A 中的 listView。值是从 Activity B 返回的。

当listView被点击后,会再次去B编辑

那么如何让 B 中的微调器显示 Pro-XXX-XXX 并且 seekBar 变为 48?有什么想法或建议吗?非常感谢

已编辑

在使用了@Clairvoyant 的答案后,现在我明白了(微调值)。

Activity一个

Activity A 中有 4 个列表。

假设第一个列表被点击。

一切正常,只是微调器 (Project/Service/Training) 显示错误的值。它显示最后一个列表中的微调器值 (PRO-SKM-D5) 而不是它本身 (Pro-XXX-XXX)

使用SharedPreferences。下次,.

得到SharedPreferences

SharedPreferences prefs = getDefaultSharedPreferences(context);

阅读偏好:

String key = "test1_string_pref";
String default = "returned_if_not_defined";
String test1 = prefs.getString(key, default);

编辑和保存首选项

SharedPreferences.Edtior editor = prefs.edit(); //Get SharedPref Editor
editor.putString(key, "My String");
editor.commit();

更短的写法

prefs.edit().putString(key, "Value").commit();

SharedPreferences 的附加信息:JavaDoc and Android Developers Article

第一步: 使您的 addItemsOnSpinner 如下所示:

    public void addItemsOnSpinner(String value) 
    { 
     int position = 0; 
     project=(Spinner)findViewById(R.id.SpinnerProject); 
     List<String> list = new ArrayList<String>(); 

     list.add(position,"TRN-XXX-XXX"); 
     list.add("Pro-XXX-XXX"); 

     for(int i=0; i<list.size() ; i++){
         if(list.get(i).equalsIgnoreCase(value)){
             position = i;
             break;
         }
     }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>      (getApplicationContext(),R.layout.spinner_item, list); 
     //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    project.setAdapter(adapter); 

    project.setSelection(position); 
   }

第二步: 当您为必须在微调器中显示的变量赋值时调用上述方法,例如:project1 是字符串值,它你想在微调器中显示然后调用方法如下:

final String Project1=getIntent().getStringExtra("ReceiveProject");
 addItemsOnSpinner(Project1);