How creat recyclerview adapter?


How creat recyclerview adapter?



How do I display my list from ActivityMain to Realm? How to add with EditText on Main2Activity a new player in Realm?



P.S.
Need to create a class App extends Application?
i spent 4 days end no result



class MainActivity: Here I want add List players in Realm
, it's default.


package com.first.anew;

import android.content.Intent;
import android.graphics.Canvas;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.Menu;
import android.view.MenuItem;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import io.realm.Realm;
import pl.fanfatal.swipecontrollerdemo.R;

public class MainActivity extends AppCompatActivity {


private PlayersDataAdapter mAdapter;
SwipeController swipeController = null;

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

setPlayersDataAdapter();
setupRecyclerView();



}


private void setPlayersDataAdapter() {

List<Player> players = new ArrayList<>();



Intent i = getIntent();
String text = i.getStringExtra ( "TextBox" );
if (text != null) {
Player pl = new Player();
pl.setName(text);
players.add(players.size(), pl);
}


try {
InputStreamReader is = new InputStreamReader(getAssets().open("players.csv"));

BufferedReader reader = new BufferedReader(is);
reader.readLine();
String line;
String st;



while ((line = reader.readLine()) != null) {

st = line.split(",");
Player player = new Player();
player.setName(st[0]);

players.add(player);


}



} catch (IOException e) {


}

mAdapter = new PlayersDataAdapter(players);

}


private void setupRecyclerView() {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);

recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerView.setAdapter(mAdapter);

swipeController = new SwipeController(new SwipeControllerActions() {
@Override
public void onRightClicked(int position) {
// mAdapter.players.remove(position);
mAdapter.notifyItemRemoved(position);
mAdapter.notifyItemRangeChanged(position, mAdapter.getItemCount());
}
});

ItemTouchHelper itemTouchhelper = new ItemTouchHelper(swipeController);
itemTouchhelper.attachToRecyclerView(recyclerView);

recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
swipeController.onDraw(c);
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_cat1) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent);
}
return super.onOptionsItemSelected(item);
}
}



class Main2Activity: Here with the EditText i add new player in Realm (List players)


package com.first.anew;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import io.realm.Realm;
import pl.fanfatal.swipecontrollerdemo.R;

public class Main2Activity extends AppCompatActivity {


private EditText editText;
private Button button;

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

}

public void addListenerOnButton() {
editText = (EditText) findViewById(R.id.edit_text);
button = (Button) findViewById(R.id.b1);
button.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent ( Main2Activity.this, MainActivity.class );
intent.putExtra ( "TextBox", editText.getText().toString() );
startActivity(intent);
}
}


);
}


}



class Player


package com.first.anew;

import io.realm.RealmObject;

public class Player extends RealmObject {

private String name;


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}


}



class PlayersDataAdapter: Adapter without Realm


package com.first.anew;

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.List;

import pl.fanfatal.swipecontrollerdemo.R;


class PlayersDataAdapter extends RecyclerView.Adapter<PlayersDataAdapter.PlayerViewHolder> {
public List<Player> players;

public class PlayerViewHolder extends RecyclerView.ViewHolder {
private TextView name;

public PlayerViewHolder(View view) {
super(view);
name = (TextView) view.findViewById(R.id.name);

}
}

public PlayersDataAdapter(List<Player> players) {
this.players = players;
}

@Override
public PlayerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.row_view, parent, false);

return new PlayerViewHolder(itemView);
}

@Override
public void onBindViewHolder(PlayerViewHolder holder, int position) {
Player player = players.get(position);
holder.name.setText(player.getName());

}

@Override
public int getItemCount() {
return players.size();
}
}





It is quite unclear what exactly are you asking here. Could you please EDIT your question and rephrase it? (Please avoid posting comments on your own question) Thanks
– sɐunıɔןɐqɐp
Jun 29 at 10:45





The official samples show you how to do this
– EpicPandaForce
Jun 29 at 10:46





@EpicPandaForce so i try to explain my Q .the question is how to add a list from MainActivity to Realm ? and How i can add by EditText from Main2Activity a new player in Realm data base? i suppose that i should use adapter but didn't know how it to realize it.
– Иван Грищенко
Jun 29 at 13:09





You seem to be reading from a CSV to fill up your data. Realm's official samples also show you how to do this.
– EpicPandaForce
Jun 29 at 13:19










By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Comments

Popular posts from this blog

paramiko-expect timeout is happening after executing the command

how to run turtle graphics in Colaboratory

Export result set on Dbeaver to CSV