Как получить данные из текстового представления в первом упражнении и опубликовать их из другого занятия? - PullRequest
0 голосов
/ 25 ноября 2018

Я хочу, чтобы данные textview во втором упражнении передавались в третьем, но я не хочу отображать их в третьем упражнении.Я хочу напрямую отправить данные из второго упражнения в Pass в моей базе данных sql после нажатия кнопки в последнем упражнении.Это достижимо?Это мое первое занятие.

public class MainActivity extends AppCompatActivity {
private EditText email, password;
private Button btn_login;
private ProgressBar loading;
private static String URL_LOGIN ="http://192.168.1.83/Attendance/login.php";

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

    loading= findViewById(R.id.loading);
    email = findViewById(R.id.editTextUserEmail);
    password = findViewById(R.id.editTextPassword);
    btn_login = findViewById(R.id.buttonRegister);


    btn_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String mEmail = email.getText().toString().trim();
            String mPassword = password.getText().toString().trim();

            if (!mEmail.isEmpty() || !mPassword.isEmpty()) {
                Login(mEmail, mPassword);
            }else{
                email.setError("Please Enter Email");
                password.setError("Please Enter Password");

            }


        }
    });

}

private void Login(final String email, final String password) {
    loading.setVisibility(View.VISIBLE);
    btn_login.setVisibility(View.GONE);

    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_LOGIN,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        Log.d("JSON", jsonObject.toString());
                        String success = jsonObject.getString("success");
                        JSONArray jsonArray = 
jsonObject.getJSONArray("login");

                        if (success.equals("1"))
                        {
                            for (int i = 0; i<jsonArray.length(); i++){
                                JSONObject object = 
jsonArray.getJSONObject(i);

                                String name = 
object.getString("name").trim();
                                String email = 
object.getString("email").trim();

//                                    Toast.makeText(MainActivity.this, 
"Success Login \nYour name: "+name+"\nYour Email: "+email,
 //                                            Toast.LENGTH_LONG).show();
                                Intent intent = new 
  Intent(MainActivity.this, HomeActivity.class);
                                intent.putExtra("name",name);
                                intent.putExtra("email", email);
                                startActivity(intent);
                              loading.setVisibility(View.GONE);


                            }

                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                        loading.setVisibility(View.GONE);
                        btn_login.setVisibility(View.VISIBLE);
                        Toast.makeText(MainActivity.this, "Error" 
 +e.toString(),
                                Toast.LENGTH_LONG).show();

                    }

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(MainActivity.this, "Error" 
+error.toString(),
                            Toast.LENGTH_LONG).show();

                }
            })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("email", email);
            params.put("password", password);
            return params;
        }
    };
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

}

Это моё второе занятие

public class HomeActivity extends AppCompatActivity {
private TextView name,email;
private TextView welcome;
private Button Send;

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

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    Send = findViewById(R.id.btn_send);
    welcome = findViewById(R.id.welcome);

    final Intent intent = getIntent();
    String extraName = intent.getStringExtra("name");
    String extraEmail = intent.getStringExtra("email");


    name.setText(extraName);
    email.setText(extraEmail);

    Send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent1 = new Intent(HomeActivity.this,StatusActivity.class);
            intent1.putExtra("wel", welcome.getText().toString());
            intent1.putExtra("name1", name.getText().toString());
            intent1.putExtra("email1", email.getText().toString());
            startActivity(intent1);


        }
    });
}

И это моё последнее занятие, но здесь я не хочу показывать текстовое представление, которое просто хочу опубликоватьэто отсюда.

public class StatusActivity extends AppCompatActivity {
private TextView welcome, name, email;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_status);
    welcome = findViewById(R.id.abcd);
    name = findViewById(R.id.name1);
    email = findViewById(R.id.email1);

    final Intent intent = getIntent();
    String extraName1 = intent.getStringExtra("name1");
    String extraEmail1 = intent.getStringExtra("email1");
    String extraWelcome = intent.getStringExtra("wel");


    name.setText(extraName1);
    email.setText(extraEmail1);
    welcome.setText(extraWelcome);


}

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Ваш вопрос достаточно ясен, пока вы не включите MySql в тему.Почему вы хотите передавать данные из одного действия в другое через базу данных.Зачем использовать операции с базой данных, которые требуют времени и ресурсов.

Вы можете передавать данные из одного действия в другое через Intent с (примитивные значения, String с и Parcelable с)!

Все, что вам нужно сделать, это:

  1. Получить данные (в вашем случае из TextView).
  2. Создать намерение, чтобы перейти к следующему действию.
  3. Поместите данные в Intent.
  4. Запустите Activity.
  5. Извлеките данные из Intent.

Например, если перейдете кследующее действие через нажатие кнопки затем в этой кнопке onClick():

// 1.
String data = myTextView.getText();
// 2. 
Intent intent = new Intent(yourContext,YourNextActivity.class);
// 3.
intent.putStringExtra("MY DATA KEY",data);
// 4.
yourContext.startActivity(intent);
// 5. Now in YourNextActivity's onCreate();
String retrievedData = YourNextActivity.this.getIntent().getStringExtra("MY DATA KEY");

// Done! 
0 голосов
/ 25 ноября 2018

Если вы хотите сохранить данные из действия «a», чтобы отправить их на ваш сервер из действия «b», вы можете использовать Общие настройки

Сохранить свои данные с помощью общих настроек

  PreferenceManager.getDefaultSharedPreferences(MainActivity.this)
            .edit()
            .putString(key, value).apply();

Получите сохраненные данные (из каждого вида деятельности)

PreferenceManager.getDefaultSharedPreferences(DriverScreen.this).getString(key, "default value")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...