Skip to content

Instantly share code, notes, and snippets.

@am5a03
Created March 1, 2016 17:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save am5a03/1385be4dcd4cdb097152 to your computer and use it in GitHub Desktop.
Save am5a03/1385be4dcd4cdb097152 to your computer and use it in GitHub Desktop.
A fragment for testing setText performance
package dnomyar.rxgag.ui.fragments;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import butterknife.Bind;
import butterknife.ButterKnife;
import dnomyar.rxgag.R;
/**
* Created by Raymond on 2016-03-02.
*/
public class TestTextFragment extends BaseFragment {
// @Bind(R.id.recycler_view)
RecyclerView recyclerView;
public static TestTextFragment newInstance() {
Bundle args = new Bundle();
TestTextFragment fragment = new TestTextFragment();
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_test_text, container, false);
// ButterKnife.bind(this, v);
recyclerView = (RecyclerView) v.findViewById(R.id.recycler_view);
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext()));
TextAdapter adapter = new TextAdapter();
recyclerView.setAdapter(adapter);
}
private static class TextAdapter extends RecyclerView.Adapter {
private static final String candidate = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
private ArrayList<String> list;
public TextAdapter() {
list = new ArrayList<>();
new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params) {
int length = candidate.length();
StringBuffer bf = new StringBuffer();
for (int i = 0; i < Math.random() * 300 + 300; i++) {
for(int j = 0; j < Math.random() * 300 + 300; j++) {
int randomPick = (int)(Math.random() * 8000 + 5000);
bf.append(candidate.charAt(randomPick % length));
}
list.add(bf.toString());
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
notifyDataSetChanged();
}
}.execute();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.text_item, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder vh = (ViewHolder) holder;
vh.textView.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
//@Bind(R.id.textTitle)
TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.textTitle);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment