Как получить текст кнопки с помощью onclicklistener в Android Java? - PullRequest
0 голосов
/ 18 апреля 2020

В моем приложении есть кнопки с несколькими кнопками, я хочу получить текст кнопки и мне нужно добавить текст выбранной кнопки вместе с URL-адресом, хранящимся в строке. Как получить текст кнопки и добавить его с помощью String URL после search/label/ ...?

Intent intent = new Intent(Intent.ACTION_VIEW);
String link = "www.abc.com/search/label/";

public void button1(View View){
    intent.setData(Uri.parse(link));
    startActivity(intent);
}

Ответы [ 3 ]

0 голосов
/ 18 апреля 2020

Итак, когда вы нажимаете любую кнопку, скажем, у вас есть 2 кнопки

class MyActivity extends Activity implements View.OnClickListener{

private Button buttonOne;
private Button buttonTwo;
String link = "www.abc.com/search/label/";


buttonOne = findViewById(R.id.button1);
buttonTwo = findViewById(R.id.button2);


//set the listener to as much buttons as you need
buttonOne.setOnClickListener(this);
buttonTwo.setOnClickListener(this);
.....

@override
public void onClick(View view){

Button button = (Button)view;
button.setText(link + button.getText());

}


 }
0 голосов
/ 18 апреля 2020

В вашем xml макете для всех кнопок добавьте android: onClick = "onButtonClicked" как:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button1"
    android:text="Button1"
    android:onClick="onButtonClicked"/>

Тогда в вашей деятельности:

public void onButtonClicked(View view) {
    Button button = (Button)view;
    String buttonText = button.getText().toString();


    //if you want to detect the different buttons...
    //else no need to use the switch
    switch (view.getId()) {
        case R.id.button1:
            //do something button1 clicked
            break;
        case R.id.button2:
            //do something button2 clicked
            break;
    }
    intent.setData(Uri.parse(link + buttonText));
    startActivity(intent);
}
0 голосов
/ 18 апреля 2020

Вы можете использовать getText():

Uri.parse(link + button.getText());

Просто внедрите OnClickListener, где вы хотите, и установите для него свою кнопку (кнопки), вызвав setOnClickListener().

@Override
public void onClick(View view) {
    if (view == button1) {
        intent.setData(Uri.parse(link + ((Button) view).getText()));
        startActivity(intent);
    }
}

Или чтобы идентифицировать кнопку с идентификатором, вы можете использовать getId для сравнения.

if (view.getId = R.id.button1)
...