当前位置: 首页 > 知识库问答 >
问题:

android列表视图中不显示图像

后源
2023-03-14
private Context context;
private int resource;
List<ToDoModel> todos;

public ToDoAdapter(@NonNull Context context, int resource, @NonNull List<ToDoModel> objects) {
    super(context, resource, objects);

    this.context = context;
    this.resource = resource;
    this.todos = objects;
}

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

    //Inflate card view
    LayoutInflater inflater = LayoutInflater.from(context);
    View row = inflater.inflate(resource, parent, false);

    TextView title = row.findViewById(R.id.title);
    TextView description = row.findViewById(R.id.txtDescription);
    ImageView img = (ImageView)row.findViewById(R.id.img_done);
    img.setVisibility(View.VISIBLE);

    //Set data in card view
    ToDoModel todo = todos.get(position);
    title.setText(todo.getTitle());
    description.setText(todo.getDescription());

    //Show done image
    if(todo.getFinished() > 0){
        img.setVisibility(View.VISIBLE);
    }

    return row;
}
private ListView todoList;
private TextView countTxt;
private Button addTodo;
private List<ToDoModel> toDos;

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

    todoList = (ListView)findViewById(R.id.listViewToDo);
    countTxt = (TextView)findViewById(R.id.txtCount);
    addTodo = (Button)findViewById(R.id.btnAdd);
    toDos = new ArrayList<>();

    addTodo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Go to next activity
            startActivity(new Intent(getApplicationContext(), AddToDO.class));
        }
    });
}

@Override
protected void onResume() {
    super.onResume();
    DBHandler dbh = new DBHandler(getApplicationContext());

    //Set count
    int count = dbh.getCountTODO();
    countTxt.setText("You have " + count + " TODOs");

    //Save list
    toDos = dbh.getAllToDos();

    //Set adapter to list
    ToDoAdapter toDoAdapter = new ToDoAdapter(getApplicationContext(), R.layout.todo_cardview, toDos);
    todoList.setAdapter(toDoAdapter);

    //Add click listener to list element
    todoList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            //Get clicked item
            ToDoModel todo = toDos.get(position);

            //Dialog box
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle(todo.getTitle());
            builder.setMessage(todo.getDescription());

            //Buttons
            builder.setNegativeButton("Delete", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dbh.deleteItem(todo.getId());
                    Toast.makeText(getApplicationContext(), "ToDo Deleted", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(getApplicationContext(), MainActivity.class));
                }
            });

            builder.setPositiveButton("Finished", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    long time = System.currentTimeMillis();
                    //Update status
                    dbh.updateFinished(todo.getId(), time);

                    startActivity(new Intent(getApplicationContext(), MainActivity.class));
                }
            });


            builder.setNeutralButton("Edit", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                  Intent intent = new Intent(MainActivity.this, AddToDO.class);
                  intent.putExtra("id", todo.getId());
                  intent.putExtra("title", todo.getTitle());
                  intent.putExtra("description", todo.getDescription());
                  intent.putExtra("finished", todo.getFinished());
                  startActivity(intent);

                }
            });

            builder.show();
        }
    });
}

}

共有1个答案

康言
2023-03-14

使用Glide或Picasso库显示任何其他形状的图像。

滑翔示例:

glide.with(mContext).load(responseList.getLogourl()).apply(requestoptions.circlecroptransform()).into(holder.imageName);

 类似资料:
  • 我已经制作了Hello World RCP应用程序,得到了以下类结构: 向Perspective.createInitialLayout()添加额外代码: 但不显示视图。 我将breakpoint设置到perspective.createInitialLayout()中,发现它没有执行。 我的观点声明是: ApplicationWorkbenchAdvisor.GetInitialWindowPe

  • 问题内容: 这是我正在处理的代码: 我想在列表视图上显示它们。您有任何教程可以帮助我入门吗?我是Web服务的新手。谢谢。 问题答案: 列表视图中最受欢迎的教学作品之一,可能会帮助您: - 拉维的博客 解析json之后要执行的步骤: 您可以使用jackson库用一行代码来解析json。 (单击此链接以获取有关对象映射教程的更多信息)

  • 我有一个android布局,它有一个,里面有很多元素。在的底部有一个,然后由适配器填充。 我遇到的问题是,android将从中排除,因为已经具有可滚动的功能。我希望与内容一样长,并且主滚动视图是可滚动的。 我怎样才能达到这种行为呢? 下面是我的主要布局: 然后以编程方式将组件添加到具有ID:的linearlayour中。下面是加载到LinearLayout中的一个视图。就是这个给我卷轴带来麻烦的。

  • 我试图使用文本视图来显示从列表视图中选择的联系人。列表视图包含用户从加载到列表视图中的Android电话簿中选择的联系人。文本视图将只显示列表视图中的最后一项,即使用户选择了另一个不是列表视图中最后一个联系人的联系人。 即使在我的日志打印中,我可以看到我选择了哪个联系人,但当我试图将其打印到另一个窗口中的文本视图时,它仍然默认为最后一个联系人。 添加调制解调器。JAVA 主要活动。JAVA