Как открыть ссылку на нажатие кнопки От действия по умолчанию, кроме основного действия в Android Studio? - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь назначить ссылку на кнопку, которая находится в другой операции, отличной от основной. Я пытался использовать Intent и Uri.parse, но приложение продолжало падать. С другой стороны, если я использовал Intent и Uri.pase на кнопке в Main Activity, это работало нормально. Кто-нибудь может мне помочь?

public class Options extends AppCompatActivity implements View.OnClickListener {
Button button;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    button=(Button)findViewById(R.id.button);
    setContentView(R.layout.activity_options);`
}


public void onClick(View view) {

}

}

Я хочу, чтобы ссылка открывалась, когда я нажимал на кнопку в разделе "Параметры".

1 Ответ

0 голосов
/ 27 марта 2020

Вы хотите передать Url из MainActivity в OtherActivity, чтобы пользователь был перенаправлен на него, когда он нажмет на OtherActivity.Button?

Если да, используйте Intent передать URL

class OtherActivity : AppCompatActivity(){
    companion object {
        private const val EXTRA_KEY_URL = "OTHER_DETAIL.EXTRA_KEY_URL"

        fun launch(launcher: Activity, url: String) {
            val intent = Intent(launcher, OtherActivity::class.java)
                    .apply {
                        putExtra(EXTRA_KEY_URL, url)
                    }
            launcher.startActivity(intent)
        }
    }

    private lateinit var url: String

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.other_activity)

        url = intent.getStringExtra("EXTRA_KEY_URL")

        myButton.setOnClickListener {
            // use url here
        }
    }
}

Как позвонить с вашего MainActivity

val uri = /* your Uri */
val str = uri.toString()
OtherActivity.launch(this, str)

Редактировать в соответствии с вашими потребностями, в Java

public class Options extends AppCompatActivity implements View.OnClickListener {

    private static final String EXTRA_KEY_URL = "OTHER_DETAIL.EXTRA_KEY_URL";

    Button button;
    String url;

    public static void start(final Activity launcher, String url) {
        Intent intent = new Intent(launcher, Options.class);
        intent.putExtra(EXTRA_KEY_URL, url)
        launcher.startActivity(intent);
    }

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_options);

        url = getIntent().getStringExtra("EXTRA_KEY_URL")

        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(this);
    }


    public void onClick(View view) {
        /* use url*/
    }
}

Затем в MainActivity

public void onClick(View view) {
    if (view.getId() == R.id.info) {
        // get your url
        String url = ""; //TODO
        OtherActivity.launch(this, url);
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...