有谁知道为什么此代码不会根据需要更改我的按钮的背景图像吗?按钮背景不会根据需要更改
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Toast.makeText(getApplicationContext(), "Size: " + Order.getInstance().getOrderItems().size(), Toast.LENGTH_SHORT).show();
price.setText(String.valueOf(Order.getInstance().getAmount()));
if(Order.getInstance().getOrderItems().size() > 0 && sent == false){
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.send);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Review Order Screen", Toast.LENGTH_SHORT).show();
Intent i = new Intent(v.getContext(), ReviewOrderActivity.class);
sent = true;
startActivity(i);
}
});
}else if(sent == true){
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.pay);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Pay Order Screen", Toast.LENGTH_SHORT).show();
//Intent i = new Intent(v.getContext(), PayActivity.class);
//startActivity(i);
}
});
}
}
如果用户按下按钮在第一时间就应该设置一个Boolean
为true,并启动新的活动。从用户按下按钮返回到上一个活动时的新活动中,现在应该将图像设置为不同,因为Boolean
设置为true。
由于某种原因,它不工作...任何帮助非常感谢!
这是活动2中的代码时按下按钮返回用户先前的活动:
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.confirm);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Intent k = new Intent(v.getContext(), SectionsActivity.class);
int tableNum = Order.getInstance().getTableNumber();
int coverNum = Order.getInstance().getCoverNumber();
itemNames = new ArrayList<String>();
//Get dishes from order
for(int i = 0; i < orderItems.size(); i++){
MenuItem item = orderItems.get(i);
String itemName = item.getName();
itemNames.add(i, itemName);
}
RequestTask requestTask = new RequestTask(url, String.valueOf(tableNum), String.valueOf(coverNum), itemNames);
ReviewOrderActivity.this.finish();
//startActivity(k);
}
});
EDIT操作的代码:
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Toast.makeText(getApplicationContext(), "value: " + sent, Toast.LENGTH_SHORT).show();
price.setText(String.valueOf(Order.getInstance().getAmount()));
if(Order.getInstance().getOrderItems().size() > 0 && sent == false){
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.send);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Review Order Screen " + sent, Toast.LENGTH_SHORT).show();
Intent i = new Intent(v.getContext(), ReviewOrderActivity.class);
startActivityForResult(i, 0);
}
});
}else if(sent == true){
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.pay);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Pay Order Screen", Toast.LENGTH_SHORT).show();
//Intent i = new Intent(v.getContext(), PayActivity.class);
//startActivity(i);
}
});
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
sent = true;
}
if (resultCode == RESULT_CANCELED) {
sent = false;
}
}
}//onActivityResult
在第二活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_review);
//Get order items from application and assign to list
orderItems = Order.getInstance().getOrderItems();
sendBtn = (ImageButton)findViewById(R.id.confirmOrder);
sendBtn.setVisibility(View.VISIBLE);
sendBtn.setBackgroundResource(R.drawable.confirm);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Intent k = new Intent(v.getContext(), SectionsActivity.class);
int tableNum = Order.getInstance().getTableNumber();
int coverNum = Order.getInstance().getCoverNumber();
itemNames = new ArrayList<String>();
//Get dishes from order
for(int i = 0; i < orderItems.size(); i++){
MenuItem item = orderItems.get(i);
String itemName = item.getName();
itemNames.add(i, itemName);
}
RequestTask requestTask = new RequestTask(url, String.valueOf(tableNum), String.valueOf(coverNum), itemNames);
setResult(RESULT_OK); //EDIT
ReviewOrderActivity.this.finish();
//startActivity(k);
}
});
//Create adapter and set to the list
adapter = new ReviewOrderArrayAdapter(this, orderItems);
this.setListAdapter(adapter);
}
当您通过'onResume()'时,是否已验证'sent == true'? – codeMagic 2013-03-16 00:26:38
@codeMagic在检查到用户返回时发现'sent == false'后,@codeMagic ...无法想象为什么该变量正在被重置。有什么建议么? – Javacadabra 2013-03-16 00:33:31