[英]Getting error in intent android somebody try to solve this error and help me,Check out SS,I tried three methods to solve but no use
In FirebaseAdapter,I've created view for intent in ViewHolderClass在 FirebaseAdapter 中,我在 ViewHolderClass 中为意图创建了视图
@Override
protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
holder.name.setText(String.valueOf(model.getName()));
holder.Nickname.setText(model.getNickname());
Log.d(TAG, "onBindViewHolder: Now Bind method executing");
holder.v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(),SecondActivity.class);
i.putExtra("Users",getRef(position).getKey());
mContext.startActivity(i);
}
});
}
In MainActivity:
mAdapter = new FirebaseAdapter(options,MainActivity.this);
In SecondActivity
public class SecondActivity extends AppCompatActivity {
DatabaseReference ref;
TextView gname,gnickname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
gname = (TextView)findViewById(R.id.gettingname);
gnickname =(TextView)findViewById(R.id.gettingnickname);
ref = FirebaseDatabase.getInstance().getReference().child("Users");
String Users = getIntent().getStringExtra("Users");
ref.child(Users).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
String name = Objects.requireNonNull(snapshot.child("Name").getValue()).toString();
String nick = Objects.requireNonNull(snapshot.child("Nick").getValue()).toString();
gname.setText(name);
gnickname.setText(nick);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
Error:
Process: com.example.firebasesearchrec, PID: 20933
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.firebasesearchrec.SecondActivity$1.onDataChange(SecondActivity.java:34)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
.......................Thank you............................................................................................................................................................ .......................谢谢......................... ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………
对于您的第三种方法,请使用此方法。
v.getContext().startActivity(i);
First of all, get Activity Context首先,获取Activity Context
Context mContext;
Get context from constructor
public FirbaseAdapter(FirebaseRecyclerOptions<DataClass> options, Context context) {
super(options);
this.mContext = context;
}
At last最后
Intent i = new Intent(view.getContext(), SecondActivity.class);
i.putExtra("Users",getRef(position).getKey());
mContext.startActivity(i);
or if you want quick & easy solution, try this或者如果你想要快速简单的解决方案,试试这个
Intent i = new Intent(view.getContext(), SecondActivity.class);
i.putExtra("Users",getRef(position).getKey());
view.getContext().startActivity(i);
In FirebaseAdapter,I've created view for intent in ViewHolderClass在FirebaseAdapter中,我已经为ViewHolderClass中的意图创建了视图
@Override
protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
holder.name.setText(String.valueOf(model.getName()));
holder.Nickname.setText(model.getNickname());
Log.d(TAG, "onBindViewHolder: Now Bind method executing");
holder.v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(),SecondActivity.class);
i.putExtra("Users",getRef(position).getKey());
mContext.startActivity(i);
}
});
}
In MainActivity:
mAdapter = new FirebaseAdapter(options,MainActivity.this);
In SecondActivity
public class SecondActivity extends AppCompatActivity {
DatabaseReference ref;
TextView gname,gnickname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
gname = (TextView)findViewById(R.id.gettingname);
gnickname =(TextView)findViewById(R.id.gettingnickname);
ref = FirebaseDatabase.getInstance().getReference().child("Users");
String Users = getIntent().getStringExtra("Users");
ref.child(Users).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
String name = Objects.requireNonNull(snapshot.child("Name").getValue()).toString();
String nick = Objects.requireNonNull(snapshot.child("Nick").getValue()).toString();
gname.setText(name);
gnickname.setText(nick);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
Error:
Process: com.example.firebasesearchrec, PID: 20933
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.firebasesearchrec.SecondActivity$1.onDataChange(SecondActivity.java:34)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
.......................Thank you............................................................................................................................................................ .......................谢谢......................... ................................................... ................................................... ...............................
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.