簡體   English   中英

卡的RecyclerView沒有顯示任何內容

[英]RecyclerView of cards not showing anything

我正在通過創建一個todo應用程序來嘗試通過支持庫的recyclerview和cardview來加載通過sqlite db持久保存的任務項。

每張卡均包含任務描述字符串和右上角的“ x”圖像,以將其從recyclerview中移除。

我正在測試第一部分,添加一個任務。 當按下commit時,我在調試器中看到該任務已持久。 然后,我調用adapter.notifyItemAdded,傳入數據源的最新索引。 該應用程序運行后不顯示任何卡,並且在logcat中未顯示任何錯誤。

MyActivity.xml:

....a bunch of RoboGuice injections
@InjectView(R.id.palettePurple)
private RelativeLayout palettePurple;

private ImageView deleteBtn;

private String currentColor;

TaskAdapter adapter;
List<Task> allTasks;

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

    // register click listeners, "this" activity will listen for clicks on these views
    editBtn.setOnClickListener(this);
    submitBtn.setOnClickListener(this);
    deleteBtn.setOnClickListener(this);

    paletteRed.setOnClickListener(this);
    paletteOrange.setOnClickListener(this);
    paletteGreen.setOnClickListener(this);
    paletteRoyalBlue.setOnClickListener(this);
    palettePurple.setOnClickListener(this);


    RecyclerView recList = (RecyclerView) findViewById(R.id.tasksRV);
    recList.setHasFixedSize(true);
    LinearLayoutManager llm = new LinearLayoutManager(this);
    llm.setOrientation(LinearLayoutManager.VERTICAL);
    recList.setLayoutManager(llm);

    allTasks = Task.getAll();
    adapter = new TaskAdapter(allTasks);
    recList.setAdapter(adapter);
}

....menu overrides....

@Override
public void onClick(View v) {
    Log.d("TRACE", "inside onClick");

    ....handling other clicks....

    // submit button was clicked, create a new task
    else if(v.getId() == R.id.submitBtn) {
            String taskDescription = taskET.getText().toString();
            Task newTask = new Task(taskDescription, currentColor);
            newTask.save();
            int lastIndex = allTasks.size()-1;
            adapter.notifyItemInserted(lastIndex);
            editSection.setVisibility(View.GONE);
            editBtn.setVisibility(View.VISIBLE);
        }
    }
}

我的卡xml和適配器java: 如何獲得RecyclerView中選定的位置?

您必須使用android.support.v7.widget.CardView 如果您使用的是Android Studio,請將其添加到您的依賴項中:

compile 'com.android.support:cardview-v7:+'

在您的build.gradle文件中。 有關更多信息,請訪問 Android Developer 網站

我很確定android studio支持recyclerview。 在您的項目build.gradle文件中添加:

dependencies {
...
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
}

這是一個美麗的博客,您可以在其中學習和使用recyclerview和cardview: http : //www.binpress.com/tutorial/android-l-recyclerview-and-cardview-tutorial/156

希望對您有所幫助。

更新

版本號可以隨時更改。 獲得最新消息的最佳方法:

右鍵單擊項目->打開模塊設置->轉到模塊部分,然后選擇模塊->在右側轉到“依賴項選項卡”->單擊“ +”按鈕,選擇“庫依賴項”->搜索所需的庫並添加。

確保您的SDK的支持存儲庫和支持庫已更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM