Итак, я работал над этим в течение нескольких дней и продолжаю получать исключение NullPointerException. У меня есть MainActivity, OutputActivity и OutputFragment. Мне нужно получить данные из editText в MainActivity в OutputFragment. Я могу получить его в OutputActivity из MainActivity с намерением и распечатать значение в logcat, но не могу получить его из OutputActivity в OutputFragment.
Я пытался:
- используя пакет для отправки его из MainActivity в OutputFragment
- используя Intent для отправки его в OutputActivity, а затем с помощью Intent для отправки его в OutputFragment
-using Намерение отправить его в OutputActivity, а затем использовать пакет для отправки в OutputFragment
Я искал во всем Stack Overflow, Google, смотрел видео и т. Д. c.
Каждый раз, когда я пытаюсь получить значение в OutputFragment, я получаю исключение NullPointerException. Я студент колледжа, и я просто не понимаю, что я делаю неправильно. Все выглядит правильно, но я продолжаю получать исключения. Я прокомментировал несколько строк, когда пробовал разные вещи, поэтому я извиняюсь за удобство чтения, я думал, что больше информации лучше, чем меньше, поэтому я оставил их. (Вся OutputActivity в настоящее время в основном закомментирована)
Кто-нибудь может мне помочь и показать мне глупую ошибку, пожалуйста?
Спасибо
Основная активность
package com.murach.josephsmithsemesterproject;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//Initialize variables
EditText benchPressEditText;
EditText squatEditText;
EditText overheadPressEditText;
EditText deadliftEditText;
Button calculateBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get references to the widgets
benchPressEditText = (EditText) findViewById(R.id.benchPressEditText);
squatEditText = (EditText) findViewById(R.id.squatEditText);
overheadPressEditText = (EditText) findViewById(R.id.overheadPressEditText);
deadliftEditText = (EditText) findViewById(R.id.deadliftEditText);
calculateBtn = (Button) findViewById(R.id.calculateBtn);
calculateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendData();
openOutputActivity();
}
});
}
private void openOutputActivity() {
Intent intent = new Intent(getApplicationContext(), OutputActivity.class);
startActivity(intent);
}
private void sendData() {
//Get values from edit text
String oneRepBench = benchPressEditText.getText().toString();
OutputFragment outputFragment = new OutputFragment();
Bundle bundle = new Bundle();
bundle.putString("oneRepBench",oneRepBench);
Log.v("Data", oneRepBench);
//set fragment class arguments
//outputFragment.setArguments(bundle);
//Intent intent = new Intent(getApplicationContext(), OutputActivity.class);
//intent.putExtra("oneRepBench", oneRepBench);
//startActivity(intent);
}
}
OutputActivity
package com.murach.josephsmithsemesterproject;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class OutputActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set the view for the activities XML
setContentView(R.layout.activity_output);
//Bundle bundle = getArguments();
//Log.v("getString", bundle.getString("oneRepBench", "No value"));
//String oneRepBench = bundle.getString("oneRepBench");
//Intent intent = getIntent();
//String oneRepBench = intent.getStringExtra("oneRepBench");
//Log.v("Data now", oneRepBench);
//Intent outputIntent = new Intent(getApplicationContext(), OutputFragment.class);
//intent.putExtra("oneRepbench", oneRepBench);
//startActivity(intent);
//Bundle bundle = new Bundle();
//bundle.putString("oneRepBench", oneRepBench);
//OutputFragment outputFragment = new OutputFragment();
//outputFragment.setArguments(bundle);
}
}
Фрагмент вывода
package com.murach.josephsmithsemesterproject;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import org.w3c.dom.Text;
import java.util.Objects;
public class OutputFragment extends Fragment {
/* @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Bundle bundle = getArguments();
//Log.v("getString", bundle.getString("oneRepBench", "No value"));
//String oneRepBench = bundle.getString("oneRepBench");
//TextView oneRepBenchText = (TextView) view.findViewById(R.id.oneRepBench);
//oneRepBenchText.setText(oneRepBench);
//Intent intent = getActivity().getIntent();
//String oneRepBench = intent.getStringExtra("oneRepBench");
}*/
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_output, container, false);
//assert getArguments() != null;
//String oneRepBench = getArguments().getString("oneRepBench");
//Intent intent = getActivity().getIntent();
//String oneRepBench = intent.getStringExtra("oneRepBench");
//Log.v("Data now", oneRepBench);
String text;
text = this.getArguments().getString("oneRepBench");
//Returns NullPointerException
return view;
}
}