Макет активности:
Код: Выделить всё
Код: Выделить всё
package com.example.jonas.flickrfestival;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Код: Выделить всё
Код: Выделить всё
package com.example.jonas.flickrfestival;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import com.example.jonas.flickrfestival.network.JsonHandler;
public class MainActivityFragment extends Fragment {
private String url;
private Button btnFetch;
private EditText txtSearch;
public MainActivityFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
btnFetch = (Button) getView().findViewById(R.id.btnSearch);
txtSearch = (EditText) container.findViewById(R.id.txtSearch);
btnFetch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JsonHandler handler = new JsonHandler();
handler.fetchImages(txtSearch.getText().toString());
}
});
return inflater.inflate(R.layout.fragment_main, container, false);
}
}
Код: Выделить всё
> > 08-10 11:11:35.959 29470-29470/com.example.jonas.flickrfestival
> > E/AndroidRuntime﹕ FATAL EXCEPTION: main
> > Process: com.example.jonas.flickrfestival, PID: 29470
> > java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jonas.flickrfestival/com.example.jonas.flickrfestival.MainActivity}:
> > android.view.InflateException: Binary XML file line #7: Error
> > inflating class fragment
> > at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
> > at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
> > at android.app.ActivityThread.access$800(ActivityThread.java:151)
> > at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
> > at android.os.Handler.dispatchMessage(Handler.java:102)
> > at android.os.Looper.loop(Looper.java:135)
> > at android.app.ActivityThread.main(ActivityThread.java:5349)
> > at java.lang.reflect.Method.invoke(Native Method)
> > at java.lang.reflect.Method.invoke(Method.java:372)
> > at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
> > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
> > Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
> > at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
> > at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
> > at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:401)
> > at android.app.Activity.setContentView(Activity.java:2197)
> > at com.example.jonas.flickrfestival.MainActivity.onCreate(MainActivity.java:13)
> > at android.app.Activity.performCreate(Activity.java:6020)
> > at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
> > at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2284)
> > at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
> > at android.app.ActivityThread.access$800(ActivityThread.java:151)
> > at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
> > at android.os.Handler.dispatchMessage(Handler.java:102)
> > at android.os.Looper.loop(Looper.java:135)
> > at android.app.ActivityThread.main(ActivityThread.java:5349)
> > at java.lang.reflect.Method.invoke(Native Method)
> > at java.lang.reflect.Method.invoke(Method.java:372)
> > at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
> > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
> > Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View
> android.view.View.findViewById(int)'
> > on a null object reference
> > at com.example.jonas.flickrfestival.MainActivityFragment.onCreateView(MainActivityFragment.java:26)
> > at android.app.Fragment.performCreateView(Fragment.java:2062)
> > at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
> > at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1045)
> > at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1147)
> > at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2116)
> > at android.app.Activity.onCreateView(Activity.java:5369)
> > at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
> > at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
> > at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
> > at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:401)
> > at android.app.Activity.setContentView(Activity.java:2197)
> > at com.example.jonas.flickrfestival.MainActivity.onCreate(MainActivity.java:13)
> > at android.app.Activity.performCreate(Activity.java:6020)
> > at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
> > at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2284)
> > at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
> > at android.app.ActivityThread.access$800(ActivityThread.java:151)
> > at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
> > at android.os.Handler.dispatchMessage(Handler.java:102)
> > at android.os.Looper.loop(Looper.java:135)
> > at android.app.ActivityThread.main(ActivityThread.java:5349)
> > at java.lang.reflect.Method.invoke(Native Method)
> > at java.lang.reflect.Method.invoke(Method.java:372)
> > at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
> > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
Код: Выделить всё
> btnFetch = (Button) getView().findViewById(R.id.btnSearch);
> txtSearch = (EditText) container.findViewById(R.id.txtSearch);