Я довольно новичок в Android Studios, и у меня возникают проблемы с вызовом нового действия из моего класса CustomAdapter. В приложении пользователь должен щелкнуть текст в ListView и открыть новое действие, в котором отображаются соответствующие сведения о контакте.
У меня есть метод с именем openContactDetails , расположенный в MainActivity.java , и он принимает параметры Контекст контекста, String currName, String currNumber . Я звоню openContactDetails in CustomAdapter.java .
openContactDetails , который находится в MainActivity.java :
//...prior code
public void openContactDetail(Context context, String currName, String currNumber){
Intent intent = new Intent(context, ContactDetails.class);
intent.putExtra("contactName", currName);
intent.putExtra("contactPhone", currNumber);
startActivity(intent);
}
CustomAdapter.java и вызывается openContactDetails :
private class ViewHolder{
protected CheckBox checkBox;
private TextView contactName;
}
public View getView(final int position, View convertView, ViewGroup parent){
final ViewHolder holder;
holder.checkBox = (CheckBox) convertView.findViewById(R.id.cb);
holder.contactName = (TextView) convertView.findViewById(R.id.contact_name);
holder.contactName.setOnClickListener(new View.OnClickListener(){
MainActivity test = new MainActivity();
@Override
public void onClick(View v){
//Toast.makeText(context, contactList.get(position).getName() + " selected at " + position, Toast.LENGTH_SHORT).show();
test.openContactDetail(context,contactList.get(position).getName(), contactList.get(position).getNumber());
}
});
Logcat:
10-13 16:54:02.195 10347-10347/com.example.testhw2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.testhw2, PID: 10347
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
at android.app.Activity.startActivityForResult(Activity.java:3918)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:3877)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4200)
at android.app.Activity.startActivity(Activity.java:4168)
at com.example.testhw2.MainActivity.openContactDetail(MainActivity.java:51)
at com.example.testhw2.CustomAdapter$2.onClick(CustomAdapter.java:90)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)