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++]);
}
}
}
添加回答
举报