0

こんにちは、私はリストビューを持っています。アイテムを押すと、選択内容が共有設定に保存されるようにしたいと考えています。これの目的は、次回アプリを開いたときに選択プロセスをスキップすることです。

私が知りたいのは、この関数をコードに組み込む方法です。

これまでの私のコードは次のとおりです。

    public class SelectTeamActivity extends ListActivity {
        public String fulldata = null;
        public String position = null;
        public String divisionName= null;
        public List<String> teamsList = null;
        public String divName = null;

    protected void loadData() {
        fulldata = getIntent().getStringExtra("fullData");
        position = getIntent().getStringExtra("itemIndex");

        Log.v("lc", "selectteamActivity:" + fulldata);
        Log.v("lc", "position:" + position);

        int positionInt = Integer.parseInt(position);

        try{
            JSONObject obj = new JSONObject(fulldata);
            teamsList = new ArrayList<String>();
            JSONObject objData = obj.getJSONObject("data");

            JSONArray teamInfoArray = objData.getJSONArray("structure");

            for(int r = 0; r < teamInfoArray.length(); r++ ){
                JSONObject teamFeedStructureDict = teamInfoArray.getJSONObject(r);
                JSONArray teamStructureArray = 
                       (JSONArray) teamFeedStructureDict.get("divisions");

                JSONObject teamFeedDivisionsDictionary =
                         teamStructureArray.getJSONObject(positionInt);
                divName = teamFeedDivisionsDictionary.getString("name");

                JSONArray teamNamesArray = 
                          (JSONArray) teamFeedDivisionsDictionary.get("teams");

                for(int t = 0; t < teamNamesArray.length(); t++){
                  JSONObject teamNamesDict = teamNamesArray.getJSONObject(t);
                  teamsList.add(teamNamesDict.getString("name"));
                }
            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.selectact);
        loadData();

        TextView headerText = (TextView) findViewById(R.id.header_text);
        headerText.setText(divName);
        TextView redHeaderText = (TextView) findViewById(R.id.redheadertext);
        redHeaderText.setText("Please select your team:");

        setListAdapter( new ArrayAdapter<String>(this, R.layout.single_item, 
                                                   teamsList));

        ListView list = getListView();

        list.setTextFilterEnabled(true);
    }

    @Override
    protected void onListItemClick (ListView l, View v, int position, long id) { 
        Intent intent = new Intent(this, HomeActivity.class);
    String curPos = Integer.toString(position);

        //or just use the position:
        intent.putExtra("itemIndex", curPos);
        intent.putExtra("fullData", fulldata); //or just the part you want
        startActivity(intent);
    }
}
4

1 に答える 1

3

アクティビティのonCreate():

 SharedPreferences preferences = getSharedPreferences("preferences", MODE_WORLD_WRITEABLE);

onListItemClick()で:

 preferences.edit().putInt("KEY", position).commit();

プロジェクトのあらゆる場所:

 int position = preferences.getInt("KEY", -1);

(-1はデフォルト値であり、指定されたキーに値がない場合は、この値を返します)

于 2012-05-04T16:11:13.080 に答える