String使用基本适配器未在listview中显示的值

时间:2017-05-15 11:55:32

标签: java android listview baseadapter

我将值作为字符串从活动通过意图传递给此页面活动,并将其添加到arraylist并使用基本适配器将该列表设置为列表视图。但不幸的是,其值未显示在listview中。 而且我无法弄清楚如何将该值设置为PagesAdapter.java中的textview。

请帮帮我们。

Pages.java

  public class Pages extends Activity implements AdapterView.OnItemClickListener {
    private static final String TAG = null;

    private List<String> list = new ArrayList<>();
    private ListView listView;
    private PagesAdapter pageadapter;
    private String androidOS;
    private String device_uuid;
    private String contributor_id;
    public String tocName;
    public String categoryName;
    private SessionManager session;
    private String first_Page;
    private String last_Page;
    private String current_Page;
    private String firstPage;
    private String lastPage;
    private String currentPage;
    ProgressDialog loading;
    private String page;
    private String name;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pages);
        listView = (ListView) findViewById(R.id.list);
        listView.setOnItemClickListener(this);
        page = getIntent().getExtras().getString("CONTENT");
        name = getIntent().getExtras().getString("NAME");
        session = new SessionManager(getApplicationContext());
        SharedPreferences pref = this.getSharedPreferences("preferences", 0);
        firstPage = pref.getString("firstpage",null);
        lastPage = pref.getString("lastpage",null);
        currentPage = pref.getString("currentpage",null);
        contributor_id = pref.getString("contributor_id",null);
        loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);
        //getData();

//        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//        setSupportActionBar(toolbar);
        androidOS = Build.VERSION.RELEASE;
        device_uuid = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
        list.add(name);
        pageadapter = new PagesAdapter(Pages.this, list);
                        listView.setAdapter(pageadapter);
     }
 @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent i = new Intent(Pages.this, RecordComposition.class);
        i.putExtra("PAGE",page);
        startActivity(i);
    }
}

PagesAdapter.java

public class PagesAdapter extends BaseAdapter {

    private Activity activity;
    private LayoutInflater inflater;
    private List<String> Pagelist;
    ImageLoader imageLoader = AppController.getInstance().getImageLoader();

    public PagesAdapter(Activity activity, List<String> billionairesItems) {
        this.activity = activity;
        this.Pagelist = billionairesItems;
    }

    @Override
    public int getCount() {
        return Pagelist.size();
    }

    @Override
    public Object getItem(int location) {
        return Pagelist.get(location);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (inflater == null)
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null)
            convertView = inflater.inflate(R.layout.pages_view, null);

        if (imageLoader == null)
            imageLoader = AppController.getInstance().getImageLoader();
        NetworkImageView thumbNail = (NetworkImageView) convertView
                .findViewById(R.id.thumbnail);
        TextView name = (TextView) convertView.findViewById(R.id.name);
//        String m = Pagelist.get(position);
        //        thumbNail.setImageUrl(m.getImage(), imageLoader);
//        name.setText(m.get);
        return convertView;

    }

}

2 个答案:

答案 0 :(得分:0)

您必须将值设置为textView:

    TextView name = (TextView) convertView.findViewById(R.id.name);
    name.setText(Pagelist.get(position));

答案 1 :(得分:0)

第一个问题与您的list变量有关。您将其作为Empty List传递,因为您没有使用String值填充它。 适配器将扫描您的列表并验证没有要显示的数据,因此请尝试将一些数据放入列表变量中并再次测试ListView

第二个问题很容易解决,只需在getView方法中添加这些行:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
     TextView name = (TextView) convertView.findViewById(R.id.name);
    name.setText(Pagelist.get(position));
   }