簡體   English   中英

Android Studio - 按下按鈕后如何讓我的 RecyclerView 包含更多項目?

[英]Android Studio - How do I make my RecyclerView contain more items after a button press?

我創建了一個帶有editTexts的RecyclerView,其大小由適配器構造函數中的integer定義,但是現在我想實現一個Button,將integer增加一個,這樣我的recyclerView中添加了另一個editText。 問題是我不知道如何在第一次創建 recyclerView 后更新它的大小,這里是代碼和我到目前為止所嘗試的。

主要活動:

public class MainActivity extends AppCompatActivity {

private RecyclerView recyclerView;
private int playerAmount;

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

    playerAmount = 6;

    recyclerView = findViewById(R.id.recyclyerViewNames);

    MyAdapter myAdapter = new MyAdapter(this, playerAmount);

    recyclerView.setAdapter(myAdapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
}

public void addPlayers(View view){
    playerAmount++;
    recyclerView.getAdapter().notifyDataSetChanged();
    Log.d("players",String.valueOf(playerAmount));
    Log.d("players in adapter",String.valueOf(recyclerView.getAdapter().getItemCount()));
}

}

適配器 class:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

Context context;
int playerAmount;

public MyAdapter(Context ct, int players){
    context = ct;
    playerAmount = players;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater inflater = LayoutInflater.from(context);
    View view = inflater.inflate(R.layout.enter_name, parent, false);

    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

}

@Override
public int getItemCount() {
    return playerAmount;
}

public class ViewHolder extends RecyclerView.ViewHolder {
    EditText editText;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        editText = itemView.findViewById(R.id.editname);
    }
}

}

從理論上講,您只需更新適配器的列表,然后必須調用notifyDataSetChanged ,其他一切都將由 Android 自己處理。

在您的情況下,您根本沒有創建列表。 您在適配器實現中缺少一些東西。

我會通過本文檔推薦 go https://developer.android.com/guide/topics/ui/layout/recyclerview

您將在頁面末尾找到 Google 提供的示例代碼鏈接,並嘗試更好地了解Recylerview ,這樣您將在更好的 position 中繼續進行。

暫無
暫無

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

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