2014-12-02 64 views
0

我通过对话题的线索负荷去,但我没能找到解决我的问题。传递纬度和经度到另一个活动

我想写这将显示存储在SQLlite DB一旦用户点击了他们应提请在显示地图的另一个活动中的一个条目GPS坐标列表中的应用程序。

我的目录活动看起来像这样:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.coordinates_activity); 

    mListView = (ListView) findViewById(R.id.listview); 

    mAdapter = new SimpleCursorAdapter(getBaseContext(), 
      R.layout.item_layout, 
      null, 
      new String[] {LocationsDB.FIELD_ROW_ID, LocationsDB.FIELD_LAT, LocationsDB.FIELD_LNG}, 
      new int[] {R.id.row_id, R.id.row_lat, R.id.row_lgt }, 0); 

    mListView.setAdapter(mAdapter); 

    getSupportLoaderManager().initLoader(0, null, this); 


    mListView.setOnItemClickListener(new OnItemClickListener(){ 

    public void onItemClick(AdapterView<?> arg0, View v, int position, long id){ 
    Intent intentlist = new Intent(getApplicationContext(),fromlist.class); 
    startActivity(intentlist); 
    } 
}); 
} 

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 


@Override 
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { 
    Uri uri = LocationsContentProvider.CONTENT_URI; 
    return new CursorLoader(this, uri, null, null, null, null); 
} 


public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) { 
    mAdapter.swapCursor(arg1); 
} 
public void onLoaderReset(Loader<Cursor> arg0) { 
     mAdapter.swapCursor(null); 
    } 


} 

我已经更新了onItemClick到:

mListView.setOnItemClickListener(new OnItemClickListener(){ 
    public void onItemClick(AdapterView<?> arg0, View v, int position, long id){ 

    TextView tv1=(TextView)v.findViewById(R.id.row_lat); 
    String lon_map=tv1.getText().toString(); 
    Double lon1 = Double.parseDouble(lon_map); 

    TextView tv2=(TextView)v.findViewById(R.id.row_lgt); 
    String lgt_map=tv2.getText().toString(); 
    Double lgt2 = Double.parseDouble(lgt_map); 

     Intent intentlist = new Intent(getApplicationContext(),fromlist.class); 
     intentlist.putExtra("lon1", lon1); 
     intentlist.putExtra("lgt2", lgt2); 

     startActivity(intentlist); 
    } 

第二个活动是这样的:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fromlist_activity); 


    double latitude = getIntent().getDoubleExtra("lon1", 0); 


    double longitude = getIntent().getDoubleExtra("lgt2", 0); 

我仍然不能得到第二项活动中的数值为

+0

什么是您的具体问题? – 2014-12-02 21:50:31

+0

您需要使用意图 – SeahawksRdaBest 2014-12-02 21:52:23

+0

如何将存储的R.id.row_lat和R.id.row_lgt的值存储到另一个活动中。 – user1380840 2014-12-02 21:52:57

回答

0

在你的第二个活动试试这个:

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fromlist_activity); 

    Bundle extras = getIntent().getExtras(); 

    double latitude = extras.getDoubleExtra("lon1", 0); 
    double longitude = extras.getDoubleExtra("lgt2", 0); 
0

把你的数据作为额外给你的意图

mListView.setOnItemClickListener(new OnItemClickListener(){ 

    public void onItemClick(AdapterView<?> arg0, View v, int position, long id){ 
    Intent intentlist = new Intent(getApplicationContext(),fromlist.class); 
    Bundle b = new Bundle(); 
    b.putDouble("lat", latitude);//latitude 
    b.putDouble("long", longitude);//longitude 
    intentlist.putExtra(b); 

    startActivity(intentlist); 
    } 
}); 

,并在您formlist活动:

@Override 
protected void onCreate(bundle b) { 

    Bundle b = getIntent().getExtras(); 
    latitude = b.getDouble("lat"); 
    longitude = b.getDouble("long"); 
    ... 
} 
0

做这样的事情:

(假设你有你想传递一个字符串第二项活动)。

在你当前活动,创建一个新的意图:

Intent i = new Intent(getApplicationContext(), NewActivity.class); 
i.putExtra("new_variable_name","value"); 
startActivity(i); 

然后在新的活动,检索这些值:

Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     String value = extras.getString("new_variable_name"); 
    } 

更多信息here