Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.

Commit

Permalink
3.04 Get the forecast from the intent and use it to populate the deta…
Browse files Browse the repository at this point in the history
…il text
  • Loading branch information
Lyla committed Mar 4, 2015
1 parent 4a61c5a commit 0d060ff
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
Expand Up @@ -17,13 +17,15 @@
package com.example.android.sunshine.app;

import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class DetailActivity extends ActionBarActivity {

Expand All @@ -33,7 +35,7 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_detail);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.add(R.id.container, new DetailFragment())
.commit();
}
}
Expand Down Expand Up @@ -64,16 +66,25 @@ public boolean onOptionsItemSelected(MenuItem item) {
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public static class DetailFragment extends Fragment {

public PlaceholderFragment() {
public DetailFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_detail, container, false);

// The detail Activity called via intent. Inspect the intent for forecast data.
Intent intent = getActivity().getIntent();
if (intent != null && intent.hasExtra(Intent.EXTRA_TEXT)) {
String forecastStr = intent.getStringExtra(Intent.EXTRA_TEXT);
((TextView) rootView.findViewById(R.id.detail_text))
.setText(forecastStr);
}

return rootView;
}
}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/layout/fragment_detail.xml
Expand Up @@ -4,9 +4,10 @@
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.android.sunshine.app.DetailActivity$PlaceholderFragment">
tools:context="com.example.android.sunshine.app.DetailActivity.DetailFragment">

<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:id="@+id/detail_text"
android:layout_height="wrap_content" />

</RelativeLayout>
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Expand Up @@ -16,7 +16,7 @@

<!-- Menu label to fetch updated weather info from the server -->
<string name="action_refresh" translatable="false">Refresh</string>
<string name="title_activity_detail">Details</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_detail">DetailActivity</string>

</resources>

2 comments on commit 0d060ff

@Ashish680
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It shows following error on clicking ViewList

FATAL EXCEPTION: main
Process: com.example.sunshine,
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sunshine/com.example.sunshine.DetailActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f0c0073 (com.example
.sunshine:id/container) for fragment DetailActivityFragment{5e07b9a #1 id=0x7f0c0073}
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0c0073 (com.example.ashish.sunshine:id/container) for fragment DetailActivityFragment{5e07b9a #1 id=0x7f0c0073}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1059)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
at android.app.Activity.performStart(Activity.java:6253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at an>

@NickNightingale77
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello Ashish680,

I had the same error.

In my case i had to add the id "container" in the file "activity_detail.xml"

android:id="@+id/container"

Please sign in to comment.