Можно ли передать информацию из одного Intent в две разных активити?

120
12 декабря 2019, 16:10

Можно ли из 1 intent предать информацию в 2 разных Activity, по нажатию кнопки. // Это о куда надо предать картинку. Данные при регистрации предаются а вот картинка не передаётся в Navigation Drawer в HeaderView.

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
final String TAG = "RegisterActivity";
EditText etEmail, etPassword, etConfirmPassword;
Button btnRegister, btnAvatars;
ImageView imageViewResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    imageViewResult = (ImageView) findViewById(R.id.images);
    etEmail = (EditText) findViewById(R.id.etUser);
    etPassword = (EditText) findViewById(R.id.etPassword);
    etConfirmPassword = (EditText) findViewById(R.id.etConfirmPassword);
    btnRegister = (Button) findViewById(R.id.btnRegister);
    btnRegister.setOnClickListener(this);
    btnAvatars = (Button) findViewById(R.id.btnAvatars);
    btnAvatars.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getApplicationContext(), Avatars.class);
            startActivity(intent);
        }
    });
    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
     int i = bundle.getInt("position");
     ImageAdapter imageAdapter = new ImageAdapter(this);
     Picasso.get().load(imageAdapter.imageUrls[i]).
                placeholder(R.drawable.placeholder).
                error(R.drawable.error).
                fit().
                centerInside().
                into(imageViewResult);

    };
}

@Override
public void onClick(View v) {
    if(!emptyValidate(etEmail, etPassword, etConfirmPassword)){
        if(passwordValidate(etPassword, etConfirmPassword)){
            String email = etEmail.getText().toString();
            String password = MD5.encrypt(etPassword.getText().toString());
            HashMap<String, String> postData = new HashMap<>();
            postData.put("email", email);
            postData.put("password", password);
            final PostResponseAsyncTask task1 = new PostResponseAsyncTask(this, postData, new AsyncResponse() {
                @Override
                public void processFinish(String s) {
                    Log.d(TAG, s);
                    if(s.contains("ErrorInsert")){
                        Toast.makeText(RegisterActivity.this, "Something went wrong. Data was not inserted.", Toast.LENGTH_LONG).show();
                    }else {
                        Intent in = new Intent(getApplicationContext(), MainActivity.class);
                        startActivity(in);
                    }
                        Intent nter =new Intent(getApplicationContext(),Main2Activity.class);
                        nter.putExtra("dadits",R.id.images);
                        startActivity(nter);
                    }
            });
            task1.execute("https://recognized-vessel.000webhostapp.com/register.php");
        }
        else{  // not equals
            Toast.makeText(getApplicationContext(), "Make sure your password is the same to confirm password", Toast.LENGTH_LONG).show();
        }
    } else{
        Toast.makeText(getApplicationContext(), "Fill out all the fields", Toast.LENGTH_LONG).show();
    }
}
private boolean emptyValidate(EditText etEmail, EditText etPassword, EditText etConfirmPassword){
    String email = etEmail.getText().toString();
    String password = etPassword.getText().toString();
    String confirm = etConfirmPassword.getText().toString();
    return (email.isEmpty() && password.isEmpty() && confirm.isEmpty());
}
private boolean passwordValidate(EditText etPassword, EditText etConfirmPassword){
    String password = etPassword.getText().toString();
    String confirm = etConfirmPassword.getText().toString();
    return (password.equals(confirm));
}

}

// Это куда надо предать картинку

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    View header = ((NavigationView)findViewById(R.id.nav_view)).getHeaderView(0);
    SharedPreferences prefs = getSharedPreferences("loginData", MODE_PRIVATE);
    String editTextValue = prefs.getString("email", null);
    TextView textView = (TextView) header.findViewById(R.id.mT1);
    textView.setText(editTextValue);
    ImageView imageView=(ImageView) header.findViewById(R.id.imageView4);
    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        int z = bundle.getInt("dadits");
        imageView.setImageResource(z);

    };


    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
    Menu m = navigationView.getMenu();

    Typeface tf1 = Typeface.createFromAsset(getAssets(), "Raleway-Regular.ttf");
    for (int i = 0; i < m.size(); i++) {
        MenuItem mi = m.getItem(i);
        SpannableString s = new SpannableString(mi.getTitle());
        s.setSpan(new CustomTypefaceSpan("", tf1), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        mi.setTitle(s);
    }
    listNews = (ListView) findViewById(R.id.listNews);
    loader = (ProgressBar) findViewById(R.id.loader);
    listNews.setEmptyView(loader);
    if(Function.isNetworkAvailable(getApplicationContext()))
    {
        DownloadNews newsTask = new DownloadNews();
        newsTask.execute();
    }else{
        Toast.makeText(getApplicationContext(), "No Internet Connection", Toast.LENGTH_LONG).show();
    }
}
class DownloadNews extends AsyncTask<String, Void, String> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }
    protected String doInBackground(String... args) {
        String xml = "";
        String urlParameters = "";
        xml = Function.excuteGet("https://newsapi.org/v1/articles?source="+NEWS_SOURCE+"&sortBy=top&apiKey="+API_KEY, urlParameters);
        return  xml;
    }
    @Override
    protected void onPostExecute(String xml) {
        if(xml.length()>10){
            try {
                JSONObject jsonResponse = new JSONObject(xml);
                JSONArray jsonArray = jsonResponse.optJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    HashMap<String, String> map = new HashMap<String, String>();
                    map.put(KEY_AUTHOR, jsonObject.optString(KEY_AUTHOR).toString());
                    map.put(KEY_TITLE, jsonObject.optString(KEY_TITLE).toString());
                    map.put(KEY_DESCRIPTION, jsonObject.optString(KEY_DESCRIPTION).toString());
                    map.put(KEY_URL, jsonObject.optString(KEY_URL).toString());
                    map.put(KEY_URLTOIMAGE, jsonObject.optString(KEY_URLTOIMAGE).toString());
                    map.put(KEY_PUBLISHEDAT, jsonObject.optString(KEY_PUBLISHEDAT).toString());
                    dataList.add(map);
                }
            } catch (JSONException e) {
                Toast.makeText(getApplicationContext(), "Unexpected error", Toast.LENGTH_SHORT).show();
            }
            ListNewsAdapter adapter = new ListNewsAdapter(Main2Activity.this, dataList);
            listNews.setAdapter(adapter);
            listNews.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent i = new Intent(Main2Activity.this, DetailsActivity.class);
                    i.putExtra("url", dataList.get(+position).get(KEY_URL));
                    startActivity(i);
                }
            });
        }else{
            Toast.makeText(getApplicationContext(), "No news found", Toast.LENGTH_SHORT).show();
        }
    }

}
READ ALSO
Создание grid сетки с разной высотой

Создание grid сетки с разной высотой

Собственно, что хочу и что получаю:

128
изменение ссылок и последующий апдейт html

изменение ссылок и последующий апдейт html

Необходимо найти все ссылки на странице и изменить их при парсингеЯ грабблю yandex

133
Пользовательские функции

Пользовательские функции

Сделал скрипт пользовательской функции для Google Tab, которая забирает значение активной ячейки и помещает в соседнюю с той, где введена пользовательская...

106