3 回答

TA貢獻1876條經驗 獲得超6個贊
該方法接收一個字符串,它是CharSequence的實現,當您這樣做時,您將獲得一個 ArrayList,其中包含元素中行的每個單元格,因此是一個數組數組。Button#setText()messages[index]
您應該將它們收集在一個字符串中。如果列表為 ,則一種方法是:List<String>
String stringMessage = String.join(", ", messages[index]);
然后,您應該能夠毫無例外地制作cal:setText()
@Override
public void onClick(View v) {
index++;
String stringMessage = String.join(", ", messages[index]);
btn_message.setText(stringMessage);
}
像這樣,您將用逗號和空格將它們連接起來,如果您想以某種方式加入它們,只需在,#join()
如果數組列表不是字符串,則可以使用 lambda 執行相同的操作:
String messageString = messages[index].stream().map(Object::toString)
.collect(Collectors.joining(", "));

TA貢獻1802條經驗 獲得超10個贊
您可以將其設置為遵循條件,如果 onClick 以避免超出范圍異常
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button btn_message;
String[] messages;
int index = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
messages = getResources().getStringArray(R.array.messages);
btn_message=findViewById(R.id.btn_message);
//set Value to varibles
btn_message.setText(messages[index++]);
btn_message.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(index < messages.length) {
btn_message.setText(messages[index]);
index++;
}else{
index = 0;
btn_message.setText(messages[index++]);
}
}
}
添加回答
舉報