2014-02-07 107 views
0

我想从第一页(并停止活动)发送一些数据到第二页,我可以进入下一页但我不知道如何检索信息。另外,onClickListener是我自己写的,我听说我可以从属性窗口设置它,但是当我点击我的属性窗口时,它只是突出显示蓝色,我无法编辑任何东西。
编辑:我根据答案更改我的代码到下面,它显示距离= 0.0,所以我只是把DIS作为我的texview的文本值显示我想要的值。在第二页值..检索第二页上的数据并停止第一页上的活动

//first page.when press this button, stop activity and go to next page 
btnStop.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      startButtonClicked=false; 
      startDistance=false; 
      String dis = (String) distance.getText();//get the value i wanted into a string 
      Intent intent = new Intent(MainActivity.this, FinishActivity.class); 
      intent.putExtra("dis","value"); 
      startActivity(intent); 
      finish(); 
     } 
    }); 

这段代码让我去 的FinishActivity页但是当我的下一个页面,有一个问题

它只是显示单词:它显示距离距离:价值。另外我还有两个可变速度,发送持续时间,所以我如何在Intent上写这个? 感谢你们俩告诉我使用Finish();第一项活动确实停止了。但我不能回去。所以我创建另一个没有数据传递的意图去回头?

//second page(FinishActivity) 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_finish); 
    Bundle extras = getIntent().getExtras(); 
    if (extras != null) 
    { 
     String value = extras.getString("dis"); 
     displayDistance=(TextView)findViewById(R.id.finishDistance); 
     displayDistance.setText("Distance: " + value); 
    } 
} 
+0

你可以使用意图。putExtra为2个更多的值并以与之前相同的方式检索它 – Raghunandan

+0

它将显示“距离值”。除了那个,你还期待什么? – Raghunandan

回答

2

试试这个

btnStop.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) { 
     startButtonClicked=false; 
     startDistance=false; 
     Intent intent = new Intent(MainActivity.this, FinishActivity.class); 
     intent.putExtra("dist","value"); 
     startActivity(intent); 
     finish(); 
    } 
}); 

而在第二页你必须调用Double value = extras.getDouble("dist");

//第二页(FinishActivity)

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_finish); 
Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    Double value = extras.getDouble("dist"); // change here 
} 
displayDistance=(TextView)findViewById(R.id.finishDistance); 
displayDistance.setText("Distance: " + value); // and here 
} 
0

密钥必须匹配

Double value = extras.getDouble("dist"); 

另外它在if块中声明并初始化。

Double value; // declared 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_finish); 
    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     value = extras.getString("dist"); // keys must match 
    } 
    displayDistance=(TextView)findViewById(R.id.finishDistance); 
    displayDistance.setText(value); // if you want the value displayed 

要停止在第一个活动的活动通话finish()当您启动第二

编辑:

it just display the word Distance 

这是你传递一个字符串,并将其显示在第二个活动字符串

also i have two more variable speed, duration to send, so how do i write that on the Intent? 

使用意图并传递变量速度和持续时间并以与intent.puExtra("speed","speedvalue");之前相同的方式检索它并检索String speed =extras.getString("speed");。请注意您传递的字符串或整数或双精度数据的类型。

but i cannot go back. so i create another intent without data passing to just go back? 

如果你想回去的第一Activity不叫finish()

0

假设您想要将值存储在EditText中。然后,在主要活动:

String string=Edittxt.getEditableText().toString() 
Intent intent = new Intent(MainActivity.this, FinishActivity.class); 
intent.putExtra("any name",string); 
startActivity(intent); 
finish(); // to stop 

次活动:

Intent intent=getIntent(); 
String string = intent.getStringExtra("any name"); 
displayDistance.setText(string); 
相关问题