0

我想要做的是,我要求用户从列表视图中选择一个值,然后他被重定向到另一个屏幕,该屏幕具有用户选择的默认微调器。我已经阅读了很多关于微调器默认设置的帖子,但没有一个包括从另一个屏幕获取信息,无论如何我都尝试过,但它们没有用。

这就是我从 WorkEntryScreenActivity.java 传递字符串的方式

//inside onCreate
mListView.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> myAdapter, View myView, 
                        int myItemInt, long mylng) {
                  selectedFromList = (String) (mListView.getItemAtPosition(myItemInt));
                  top10 = true;
                  call(top10);  }

            });


//outside onCreate
protected void call(boolean top10){
    if(top10) {
    Intent i = new Intent(this, WorkEntryActivity.class);   
        i.putExtra("FromTab", "true");
        i.putExtra("workRequest",selectedFromList);
        startActivity(i);
        finish();
    }
   }

在另一个 java 文件 WorkEntryActivity.java

//get the string
workRequestFetched = extras.getString("workRequest");

//This is where I need help
ArrayList<String> workRequestAdded = new ArrayList<String>();
        workRequestSpinner = (Spinner) findViewById(R.id.workRequestSpinner);

        if(workRequestFetched != null){

            workRequestAdded.add(workRequestFetched);
        }

        ArrayList<String> workRequests = ServiceCall.workRequests;

        workRequestAdded.addAll(workRequests);

        final ArrayAdapter<String> workRequestAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item,
                 workRequestAdded);

        workRequestAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


        workRequestSpinner.setAdapter(workRequestAdapter);
4

2 回答 2

2

如果我没记错的话,微调器的默认选项是与其关联的字符串数组中的第一个选项。如果您将 workRequest 作为字符串数组中的第一个选项,它应该是默认选项。

编辑:经过一番谷歌搜索后,您似乎无法以编程方式修改 res/Strings.xml。但是,如果没有办法将相关 java 文件中定义的字符串数组链接到微调器,我会感到惊讶。

于 2012-06-15T14:24:21.097 回答
2

首先,您必须使用 遍历myAdap适配器,myAdap.getItem(position)并找出适配器项中的哪个字符串与字符串匹配workRequest。一旦您能够获取该项目,您就可以使用workRequestSpinner.setSelection(THE_POSITION_OF_MATCHED_STRING).

希望回答对你有所帮助。

于 2012-06-15T14:38:03.763 回答