java - ListView 不显示 - Android 工作室

标签 java android listview android-adapter

我有一个包含 ListView 的 Activity 。它将包含 3 个名称,但未显示。 CinemaActivity 创建一个新的 ListView 和一个新的适配器(下面的代码),然后检查 ListView 的哪个项目被按下并打开一个新的 Activity 。 现在的问题只是 ListView。

CinemaActivity.java

public class CinemaActivity extends AppCompatActivity {
    public Upcoming up;
    public MostPopular mos;

    public List<Data> dataUP;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cinema_activity);

        initUI();
    }

    public void initUI() {

        String data[] = new String[]{"Most Popular", "UpComing", "Top Rated"};

        ListView cinemaListview = (ListView) findViewById(R.id.lwCinema);
        cinemaMainAdapter cma = new cinemaMainAdapter(this, android.R.layout.simple_list_item_1, data);
        cinemaListview.setAdapter(cma);
        cinemaListview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> adapter, final View component, int pos, long id) {

                try {
                    openActivity(pos);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public void openActivity(int pos) {
        switch(pos) {
            case 0:
                Intent mpIntent = new Intent(this, MostPopular.class);
                startActivity(mpIntent);
                break;
            case 1:
                Intent ucIntent= new Intent(this, Upcoming.class);
                startActivity(ucIntent);
                break;
            case 2:
                Intent trIntent = new Intent(this, TopRated.class);
                startActivity(trIntent);
                break;
        }
    }

cinemaMainAdapter.java

public class cinemaMainAdapter extends ArrayAdapter<String> {

    Context context;
    int layoutResourceId;
    String data[] = null;

    public cinemaMainAdapter(Context context, int layoutResourceId, String data[]) {
        super(context, layoutResourceId);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;
    }

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

        ViewHolder holder;

        if (convertView == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            convertView = inflater.inflate(R.layout.cinema_listview, parent, false);

            holder = new ViewHolder();
            holder.textviewHolder = (TextView) convertView.findViewById(R.id.twcinemaLayoutMain);

            convertView.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        }

        String title = data[position];
        holder.textviewHolder.setText(title);

        return convertView;
    }

    static class ViewHolder {
        public TextView textviewHolder;
    }
}

最佳答案

改变

super(context, layoutResourceId);

super(context, layoutResourceId, data);

关于java - ListView 不显示 - Android 工作室,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37790080/

相关文章:

android - 在抽屉导航中突出显示所选项目

android - 如何更改选定/聚焦的 ListView 项目中的字体颜色?

Android ..当我沿着适配器向下滚动时ListView崩溃..

java - 在java中将未填充的二维数组显示到JTextarea中

java - 斯坦福解析器内存不足

Java FileDialog 以编程方式设置大小

android - freopen 返回 errno 14 EFAULT : while executing. (arm, linux, android)

Java String.matches 正则表达式

android - 如何使用 Android MapView 计算两个 GeoPoints 之间的距离

android - Firebase Crashlytics 不支持 NDK?