【问题标题】:Populate ListView using Shared preferences使用共享首选项填充 ListView
【发布时间】:2018-08-19 12:26:49
【问题描述】:

我在第二个活动中使用共享首选项填充列表视图时遇到问题。当我在第一个活动的 editText 中添加一个新值时,第二个活动只显示一个列表视图,其中包含我输入的 arraylist 的单个项目。请帮我解决这个问题。

第一个活动

package com.example.sy.list;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;


public class History extends AppCompatActivity {
Button translate;
Button next;
EditText enterText;
private SharedPreferences hPreferences;
ArrayList<String> hisList = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.history);

    enterText = findViewById(R.id.editText);
    next = findViewById(R.id.btnNext);

    translate = findViewById(R.id.buttonTranslate);
    View.OnClickListener addlistener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(enterText.getWindowToken(), 0);

            String input = enterText.getText().toString();
            if(input == null){
                Toast.makeText(getBaseContext(),"Input Field is empty",Toast.LENGTH_SHORT).show();
            }else
            {
                hisList.add(input);
                hPreferences  = getSharedPreferences("SaveHistory",Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = hPreferences.edit();
                Set<String> set = new HashSet<String>();
                set.addAll(hisList);
                editor.putStringSet("history",set);
                editor.commit();
                editor.apply();
                enterText.setText("");
            }





        }

    };
    translate.setOnClickListener(addlistener);
    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(History.this,MainActivity.class);
            startActivity(intent);
        }
    });



}

} 第二个活动

package com.example.sy.list;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;


public class MainActivity extends AppCompatActivity {
private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ArrayList<String> itemList = new ArrayList<String>();
    ArrayAdapter<String> adapter;
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itemList);

    listView = findViewById(R.id.listView);
    listView.setAdapter(adapter);
    SharedPreferences transHistory  = getSharedPreferences("SaveHistory",Context.MODE_PRIVATE);
    Set<String> tHistory = transHistory.getStringSet("history", null);
    List<String> sample=new ArrayList<String>(tHistory);
    itemList.add(String.valueOf(sample));
    adapter.notifyDataSetChanged();


}

}

【问题讨论】:

    标签: android listview sharedpreferences


    【解决方案1】:

    你的问题来了

    itemList.add(String.valueOf(sample));
    

    替换为

    for (String x: tHistory) {
        itemList.add(x);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2019-01-21
      • 2020-07-21
      • 1970-01-01
      • 2014-08-17
      相关资源
      最近更新 更多