如何从AlertDialog传递值到intent的下一个Activity?

时间:2011-09-04 03:51:30

标签: android android-intent alertdialog

我想回到显示地点完整信息的Place.class ..现在我可以返回Place活动,但信息只显示title和{{ 1}} ..我认为它可能发生在address方法中。它只有2件事情被赋予意图......

onTab

如果我想放置其他字段,即intent.putExtra(Constants.COL_TITLE, oi.getTitle()); intent.putExtra(Constants.COL_ADDRESS, oi.getSnippet()); content等。如何将数据库中的数据放入此意图?

phone

感谢您的帮助

我这里有3个班级

intent.putExtra(Constants.COL_CON, ..........);

xxx.class

public class xxx extends MapActivity { MapView mapView; MapController mapController; private static MyDB mDbHelper; private Cursor c; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aboutcm); mDbHelper = new MyDB(this); mDbHelper.createDatabase(); mDbHelper.open(); c = mDbHelper.getAttraction(); mapView = (MapView) findViewById(R.id.mapview); mapController = mapView.getController(); Drawable drawable = this.getResources().getDrawable(R.drawable.map_pin_3); List<Overlay> mapOverlays = mapView.getOverlays(); PlaceItemizedOverlay itemizedoverlay = new PlaceItemizedOverlay(drawable, this); mapController.setZoom(13); mapView.setBuiltInZoomControls(true); c.moveToFirst(); do { String title = c.getString(c .getColumnIndex(Constants.COL_TITLE)); String address = c.getString(c .getColumnIndex(Constants.COL_ADDRESS)); String content = c.getString(c .getColumnIndex(Constants.COL_CONTENT)); int latitude = (int) (c.getDouble(c .getColumnIndex(Constants.COL_LA)) * 1E6); int longitude = (int) (c.getDouble(c .getColumnIndex(Constants.COL_LONG)) * 1E6); itemizedoverlay.addOverlay(new OverlayItem(new GeoPoint(latitude, longitude), title, address)); mapOverlays.add(itemizedoverlay); } while (c.moveToNext()); mDbHelper.close(); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }

PlaceItemizedOverlay.class

2 个答案:

答案 0 :(得分:1)

假设您要将字符串“123456789”从xxx Activity传递给Place.class。然后你会使用intent.putExtra("content", "123456789")然后在Place.class intent.getStringExtra("content")中返回“123456789”

  

我能宣布......意图i =新意图(??????,Place.class);和   我应该把什么投入??????

你可以做三件事之一。首先,我首选的方法是在类体声明:

Context context;

然后在onCreate(...)声明:

context = this;

然后你可以这样做:

Intent i = new Intent(context, Place.class);

其次,您可以声明:

Intent i = new Intent(getApplicationContext(), Place.class);

第三,在你的课堂上你可以声明:

Intent i;

然后在onCreate(...)

i = new Intent(this, Place.class);

使用第三种方法,您可以在alertDialog中使用startActivity(i)

答案 1 :(得分:0)

这是一个简单的意图传递程序:从主要意图到第二意图

public void nextButtonOnClick(View arg0)
    {
        Intent intent=(new Intent(MainActivity.this,SecondActivity.class));
        startActivity(intent);
    }

在XML文件中修改:

android:onClick="nextButtonOnClick"