Reputation: 40416
I have below code and its working nice tvTitle is not returning null but
RelativeLayout relmain = (RelativeLayout) findViewById(R.id.mainview);
LayoutInflater inflater = LayoutInflater.from(this);
RelativeLayout contents = (RelativeLayout) inflater
.inflate(R.layout.placedetail, null);
relmain.addView(contents);
TextView tvTitle = (TextView) contents.findViewById(R.id.tvdealtitle);
^^^^^^
but google map is return me null...check below code...
GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map2)).getMap();
System.out.println("Google map is :: " + googleMap);
placedetail.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bgmap"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/rel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/banner"
android:onClick="onClickBack" >
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:background="@drawable/directions"
android:onClick="onClickImage" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/reldetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rel1"
android:layout_marginTop="10dp" >
<TextView
android:id="@+id/tvdealtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="8dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Title"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvdealoffertext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvdealtitle"
android:layout_below="@+id/tvdealtitle"
android:layout_marginTop="2dp"
android:ellipsize="end"
android:maxLines="2"
android:text="offertext"
android:textColor="#696969"
android:textStyle="bold" />
<TextView
android:id="@+id/tvdealdesc"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignLeft="@+id/tvdealtitle"
android:layout_below="@+id/tvdealoffertext"
android:layout_marginTop="2dp"
android:scrollbars="vertical"
android:text="desc"
android:textColor="#696969"
android:textStyle="bold" />
</RelativeLayout>
<fragment
android:id="@+id/map2"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/reldetail" />
</RelativeLayout>
Upvotes: 2
Views: 2677
Reputation: 1910
Taken from SupportMapFragment documentation:
A GoogleMap can only be acquired using getMap() when the underlying maps system is loaded and the underlying view in the fragment exists. This class automatically initializes the maps system and the view; however you cannot be guaranteed when it will be ready because this depends on the availability of the Google Play services APK. If a GoogleMap is not available, getMap() will return null.
Then, in your Activity you can use GooglePlayServicesUtil to check about the availability:
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
// Setup your map...
} else {
int isEnabled = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (isEnabled != ConnectionResult.SUCCESS) {
GooglePlayServicesUtil.getErrorDialog(isEnabled, this, 0);
}
}
Here in method setUpMapIfNeeded you've got a working example of one of my apps: Tureame.
Upvotes: 4