-
-
Save ymyusuf/a88deb139362c60e4246c909f6160d20 to your computer and use it in GitHub Desktop.
RecyclerView Java Tutorial Part 3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:context="com.example.application.recyclerviewproject.MainActivity"> | |
<android.support.v7.widget.RecyclerView | |
android:id="@+id/recyclerView" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:layout_marginBottom="100dp" | |
android:background="@android:color/darker_gray" | |
android:padding="4dp" | |
android:scrollbars="vertical" /> | |
<EditText | |
android:id="@+id/edittext_insert" | |
android:layout_width="40dp" | |
android:layout_height="wrap_content" | |
android:layout_alignParentStart="true" | |
android:layout_alignParentBottom="true" | |
android:layout_marginStart="15dp" | |
android:layout_marginBottom="25dp" | |
android:inputType="number" /> | |
<Button | |
android:id="@+id/button_insert" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignBottom="@id/edittext_insert" | |
android:layout_toEndOf="@id/edittext_insert" | |
android:text="insert" /> | |
<EditText | |
android:id="@+id/edittext_remove" | |
android:layout_width="40dp" | |
android:layout_height="wrap_content" | |
android:layout_alignBottom="@id/button_insert" | |
android:layout_marginStart="65dp" | |
android:layout_toEndOf="@id/button_insert" | |
android:inputType="number" /> | |
<Button | |
android:id="@+id/button_remove" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignBottom="@id/edittext_remove" | |
android:layout_toEndOf="@id/edittext_remove" | |
android:text="remove" /> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_marginBottom="4dp" | |
app:cardCornerRadius="4dp"> | |
<RelativeLayout | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:layout_margin="4dp"> | |
<ImageView | |
android:id="@+id/imageView" | |
android:layout_width="50dp" | |
android:layout_height="50dp" | |
android:padding="2dp" /> | |
<TextView | |
android:id="@+id/textView" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentTop="true" | |
android:layout_toEndOf="@+id/imageView" | |
android:text="Line 1" | |
android:textColor="@android:color/black" | |
android:textSize="20sp" | |
android:textStyle="bold" /> | |
<TextView | |
android:id="@+id/textView2" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_below="@+id/textView" | |
android:layout_marginStart="8dp" | |
android:layout_toEndOf="@+id/imageView" | |
android:text="Line 2" | |
android:textSize="15sp" /> | |
</RelativeLayout> | |
</android.support.v7.widget.CardView> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.application.recyclerviewproject; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import java.util.ArrayList; | |
public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> { | |
private ArrayList<ExampleItem> mExampleList; | |
public static class ExampleViewHolder extends RecyclerView.ViewHolder { | |
public ImageView mImageView; | |
public TextView mTextView1; | |
public TextView mTextView2; | |
public ExampleViewHolder(View itemView) { | |
super(itemView); | |
mImageView = itemView.findViewById(R.id.imageView); | |
mTextView1 = itemView.findViewById(R.id.textView); | |
mTextView2 = itemView.findViewById(R.id.textView2); | |
} | |
} | |
public ExampleAdapter(ArrayList<ExampleItem> exampleList) { | |
mExampleList = exampleList; | |
} | |
@Override | |
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false); | |
ExampleViewHolder evh = new ExampleViewHolder(v); | |
return evh; | |
} | |
@Override | |
public void onBindViewHolder(ExampleViewHolder holder, int position) { | |
ExampleItem currentItem = mExampleList.get(position); | |
holder.mImageView.setImageResource(currentItem.getImageResource()); | |
holder.mTextView1.setText(currentItem.getText1()); | |
holder.mTextView2.setText(currentItem.getText2()); | |
} | |
@Override | |
public int getItemCount() { | |
return mExampleList.size(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.application.recyclerviewproject; | |
public class ExampleItem { | |
private int mImageResource; | |
private String mText1; | |
private String mText2; | |
public ExampleItem(int imageResource, String text1, String text2) { | |
mImageResource = imageResource; | |
mText1 = text1; | |
mText2 = text2; | |
} | |
public int getImageResource() { | |
return mImageResource; | |
} | |
public String getText1() { | |
return mText1; | |
} | |
public String getText2() { | |
return mText2; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.application.recyclerviewproject; | |
import android.os.Bundle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.support.v7.widget.LinearLayoutManager; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.EditText; | |
import java.util.ArrayList; | |
public class MainActivity extends AppCompatActivity { | |
private ArrayList<ExampleItem> mExampleList; | |
private RecyclerView mRecyclerView; | |
private RecyclerView.Adapter mAdapter; | |
private RecyclerView.LayoutManager mLayoutManager; | |
private Button buttonInsert; | |
private Button buttonRemove; | |
private EditText editTextInsert; | |
private EditText editTextRemove; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
createExampleList(); | |
buildRecyclerView(); | |
buttonInsert = findViewById(R.id.button_insert); | |
buttonRemove = findViewById(R.id.button_remove); | |
editTextInsert = findViewById(R.id.edittext_insert); | |
editTextRemove = findViewById(R.id.edittext_remove); | |
buttonInsert.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
int position = Integer.parseInt(editTextInsert.getText().toString()); | |
insertItem(position); | |
} | |
}); | |
buttonRemove.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
int position = Integer.parseInt(editTextRemove.getText().toString()); | |
removeItem(position); | |
} | |
}); | |
} | |
public void insertItem(int position) { | |
mExampleList.add(position, new ExampleItem(R.drawable.ic_android, "New Item At Position" + position, "This is Line 2")); | |
mAdapter.notifyItemInserted(position); | |
} | |
public void removeItem(int position) { | |
mExampleList.remove(position); | |
mAdapter.notifyItemRemoved(position); | |
} | |
public void createExampleList() { | |
mExampleList = new ArrayList<>(); | |
mExampleList.add(new ExampleItem(R.drawable.ic_android, "Line 1", "Line 2")); | |
mExampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 3", "Line 4")); | |
mExampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 5", "Line 6")); | |
} | |
public void buildRecyclerView() { | |
mRecyclerView = findViewById(R.id.recyclerView); | |
mRecyclerView.setHasFixedSize(true); | |
mLayoutManager = new LinearLayoutManager(this); | |
mAdapter = new ExampleAdapter(mExampleList); | |
mRecyclerView.setLayoutManager(mLayoutManager); | |
mRecyclerView.setAdapter(mAdapter); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment