当时我是直接单独建了一个.java文件ListViewActivity.java来填充adapter,但是运行之后list view不显示,空空如也,怎么也解决不来。后来我把listview写在了mainactivity中就成功了,如果有大佬知道为什么请不吝赐教,下面的代码先是无法实现的,之后是可以实现的,如果有小伙伴有这样的情况出现,可以尝试一下我的方法 无法显示listview的内容的代码如下: ListViewActivity.java
import android.support.annotation.Nullable;
import android.widget.ListView;
public class ListViewActivity extends Activity {
private ListView mlv1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_01);
mlv1 = findViewById(R.id.lv_1);
MyListAdapter adapter = new MyListAdapter(this);
mlv1.setAdapter(adapter);
}
}
MyListAdapter.java
package com.example.a17919.demo1;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyListAdapter extends BaseAdapter {
public Context mContent;
private LayoutInflater mlayoutflater;
public MyListAdapter(Context context)
{
this.mContent = context;
mlayoutflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return 5;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
class ViewHolder{
public ImageView imageView;
public TextView tvTitle,tvTime,tvContent;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
holder = new ViewHolder();
convertView = mlayoutflater.inflate(R.layout.layout_list_item,parent,false);
holder.imageView = convertView.findViewById(R.id.iv);
holder.tvTitle = convertView.findViewById(R.id.tv_title);
holder.tvTime = convertView.findViewById(R.id.tv_time);
holder.tvContent = convertView.findViewById(R.id.tv_content);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
//给控件赋值
holder.imageView.setImageResource(R.drawable.ic_launcher_background);
holder.tvTitle.setText("这是标题");
holder.tvTime.setText("2020-12-12");
holder.tvContent.setText("这是内容");
return convertView;
}
}
layout_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<ImageView android:id="@+id/iv"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="centerCrop"
android:background="#000"/>
<LinearLayout android:layout_width="200dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="15dp">
<TextView android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello"
android:textSize="20sp"
android:textColor="@color/colorblack"/>
<TextView android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2019-04-10"
android:layout_marginTop="10dp"
android:textSize="18sp"
android:textColor="@color/colorgrayDark"/>
<TextView android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textSize="18sp"
android:text="这是内容"
android:textColor="@color/colorgrayDark"/>
</LinearLayout>
<Button
android:id="@+id/btn_listview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Btn_listview2"
android:layout_gravity="bottom|end"/>
</LinearLayout>
page_01.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView android:id="@+id/lv_1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</RelativeLayout>
MainActivity.java
package com.example.a17919.demo1;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener,OnPageChangeListener{
// 底部菜单4个Linearlayout
private LinearLayout ll_home;
private LinearLayout ll_mine;
// 底部菜单4个ImageView
private ImageView iv_home;
private ImageView iv_mine;
// 底部菜单4个菜单标题
private TextView tv_home;
private TextView tv_mine;
// 中间内容区域
private ViewPager viewPager;
// ViewPager适配器ContentAdapter
private ContentAdapter adapter;
private List<View> views;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
initView();
// 初始化底部按钮事件
initEvent();
}
private void initEvent() {
// 设置按钮监听
ll_home.setOnClickListener(this);
ll_mine.setOnClickListener(this);
//设置ViewPager滑动监听
viewPager.setOnPageChangeListener(this);
}
private void initView() {
// 底部菜单4个Linearlayout
this.ll_home = findViewById(R.id.ll_home);
this.ll_mine = findViewById(R.id.ll_mine);
// 底部菜单4个ImageView
this.iv_home = findViewById(R.id.iv_home);
this.iv_mine = findViewById(R.id.iv_mine);
// 底部菜单4个菜单标题
this.tv_home = findViewById(R.id.tv_home);
this.tv_mine = findViewById(R.id.tv_mine);
// 中间内容区域ViewPager
this.viewPager = findViewById(R.id.vp_content);
// 适配器
View page_01 = View.inflate(MainActivity.this, R.layout.page_01, null);
View page_02 = View.inflate(MainActivity.this, R.layout.page_02, null);
views = new ArrayList<View>();
views.add(page_01);
views.add(page_02);
this.adapter = new ContentAdapter(views);
viewPager.setAdapter(adapter);
}
@Override
public void onClick(View v) {
// 在每次点击后将所有的底部按钮(ImageView,TextView)颜色改为灰色,然后根据点击着色
restartBotton();
// ImageView和TetxView置为绿色,页面随之跳转
Intent intent = null;
switch (v.getId()) {
case R.id.ll_home:
iv_home.setImageResource(R.drawable.shouye);
tv_home.setTextColor(0xff1B940A);
viewPager.setCurrentItem(0);
break;
case R.id.ll_mine:
iv_mine.setImageResource(R.drawable.dingwei);
tv_mine.setTextColor(0xff1B940A);
viewPager.setCurrentItem(1);
break;
default:
break;
}
}
private void restartBotton() {
// ImageView置为灰色
iv_home.setImageResource(R.drawable.shouye);
iv_mine.setImageResource(R.drawable.dingwei);
// TextView置为白色
tv_home.setTextColor(0xffffffff);
tv_mine.setTextColor(0xffffffff);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
restartBotton();
//当前view被选择的时候,改变底部菜单图片,文字颜色
switch (arg0) {
case 0:
iv_home.setImageResource(R.drawable.shouye);
tv_home.setTextColor(0xff1B940A);
break;
case 1:
iv_mine.setImageResource(R.drawable.dingwei);
tv_mine.setTextColor(0xff1B940A);
break;
default:
break;
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="@layout/activity_top" />
<android.support.v4.view.ViewPager
android:id="@+id/vp_content"
android:layout_width="match_parent"
android:background="#ffffff"
android:layout_height="0dp"
android:layout_weight="1" >
</android.support.v4.view.ViewPager>
<include layout="@layout/activity_bottom" />
</LinearLayout>
将ListViewActivity.java弃用删除后在mainactivity.java中添加
ListView listView1 = page_01.findViewById(R.id.lv_1);
MyListAdapter adapter = new MyListAdapter(this);
listView1.setAdapter(adapter);
具体添加位置如下:
package com.example.a17919.demo1;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener,OnPageChangeListener{
// 底部菜单4个Linearlayout
private LinearLayout ll_home;
private LinearLayout ll_mine;
// 底部菜单4个ImageView
private ImageView iv_home;
private ImageView iv_mine;
// 底部菜单4个菜单标题
private TextView tv_home;
private TextView tv_mine;
// 中间内容区域
private ViewPager viewPager;
// ViewPager适配器ContentAdapter
private ContentAdapter adapter;
private List<View> views;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
initView();
// 初始化底部按钮事件
initEvent();
}
private void initEvent() {
// 设置按钮监听
ll_home.setOnClickListener(this);
ll_mine.setOnClickListener(this);
//设置ViewPager滑动监听
viewPager.setOnPageChangeListener(this);
}
private void initView() {
// 底部菜单4个Linearlayout
this.ll_home = findViewById(R.id.ll_home);
this.ll_mine = findViewById(R.id.ll_mine);
// 底部菜单4个ImageView
this.iv_home = findViewById(R.id.iv_home);
this.iv_mine = findViewById(R.id.iv_mine);
// 底部菜单4个菜单标题
this.tv_home = findViewById(R.id.tv_home);
this.tv_mine = findViewById(R.id.tv_mine);
// 中间内容区域ViewPager
this.viewPager = findViewById(R.id.vp_content);
// 适配器
View page_01 = View.inflate(MainActivity.this, R.layout.page_01, null);
View page_02 = View.inflate(MainActivity.this, R.layout.page_02, null);
views = new ArrayList<View>();
views.add(page_01);
views.add(page_02);
this.adapter = new ContentAdapter(views);
viewPager.setAdapter(adapter);
ListView listView1 = page_01.findViewById(R.id.lv_1);
MyListAdapter adapter = new MyListAdapter(this);
listView1.setAdapter(adapter);
}
@Override
public void onClick(View v) {
// 在每次点击后将所有的底部按钮(ImageView,TextView)颜色改为灰色,然后根据点击着色
restartBotton();
// ImageView和TetxView置为绿色,页面随之跳转
Intent intent = null;
switch (v.getId()) {
case R.id.ll_home:
iv_home.setImageResource(R.drawable.shouye);
tv_home.setTextColor(0xff1B940A);
viewPager.setCurrentItem(0);
break;
case R.id.ll_mine:
iv_mine.setImageResource(R.drawable.dingwei);
tv_mine.setTextColor(0xff1B940A);
viewPager.setCurrentItem(1);
break;
default:
break;
}
}
private void restartBotton() {
// ImageView置为灰色
iv_home.setImageResource(R.drawable.shouye);
iv_mine.setImageResource(R.drawable.dingwei);
// TextView置为白色
tv_home.setTextColor(0xffffffff);
tv_mine.setTextColor(0xffffffff);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
restartBotton();
//当前view被选择的时候,改变底部菜单图片,文字颜色
switch (arg0) {
case 0:
iv_home.setImageResource(R.drawable.shouye);
tv_home.setTextColor(0xff1B940A);
break;
case 1:
iv_mine.setImageResource(R.drawable.dingwei);
tv_mine.setTextColor(0xff1B940A);
break;
default:
break;
}
}
}