android


Change TextView when Navigation Drawer Item is selected


I'm trying to make three different options in my navigation drawer use the same fragment but with different values in the TextView in that fragment.
I created a standard Navigation Drawer Activity with Android Studio and tried to use setText in the same method that changes the title, see below:
public void onSectionAttached(int number) {
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
Namn.setText("Item 1");
break;
case 2:
mTitle = getString(R.string.title_section2);
Namn.setText("Item 2");
break;
case 3:
mTitle = getString(R.string.title_section3);
Namn.setText("Item 3");
break;
}
}
When I try to run the app it force closes instantly and I get this error:
Process: com.test.je.test, PID: 22605
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.je.test/com.test.je.test.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.access$800(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.test.je.test.MainActivity.onSectionAttached(MainActivity.java:68)
at com.test.je.test.MainActivity$PlaceholderFragment.onAttach(MainActivity.java:153)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5251)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
            at android.app.ActivityThread.access$800(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5034)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
            at dalvik.system.NativeStart.main(Native Method)
I have declared the TextView with TextView Namn; and Namn = (TextView)findViewById(R.id.twnamn);
What am I doing wrong here?
So user #feresr helped me understand what was wrong with his comment.
I created an if statement in the onCreateView() method instead and it solved the problem.
I had to declare the textview after the fragment had been created also.
Here is the code:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView;
Bundle args = getArguments();
int currentView = getArguments().getInt(ARG_SECTION_NUMBER);
if(currentView == 1){
rootView = inflater.inflate(R.layout.fragment_main, container, false);
TextView Namn = (TextView) rootView.findViewById(R.id.twnamn);
Namn.setText("Val 1");
}else if(currentView == 2){
rootView = inflater.inflate(R.layout.fragment_main, container, false);
TextView Namn = (TextView) rootView.findViewById(R.id.twnamn);
Namn.setText("Val 2");
}else if(currentView == 3){
rootView = inflater.inflate(R.layout.fragment_main, container, false);
TextView Namn = (TextView) rootView.findViewById(R.id.twnamn);
Namn.setText("Val 3");
}else {
rootView = inflater.inflate(R.layout.fragment_main, container, false);
}
return rootView;
}

Related Links

android different apks same authenticator account type
Sharing Asset Image from Android custom IME, working for everything except Gmail and MMS
Download Streamed gif file and store in byte array
Android JSONParser Php
How can I get an ImageView's tint color programatically?
How to make compressed lightmaps look better?
wait for AsyncTask to finish
Is it doable to collect user fingerprint with android?
After fragment replace fragment view not scrollable
Group Firebase FCM on Android Device
android studio - sqlite: get random row data using cursor
DEVICE_POWER uses permission not working
Payment Succesfull but don't know how to consume item
Samsung devices intermittently reporting incorrect screen width
Baidu Map SDK Error Ignoring InnerClasses attribute for an anonymous inner class com.baidu
Custom LinearLayout calling method

Categories

HOME
shell
windows
google-app-engine
eclipse
porting
linkedin
android-studio-2.2
pascal
dojo
square
limit
regular-language
azure-container-service
owin
watson-conversation
mautic
gkturnbasedmatch
enterprise-architect
capistrano3
jmp
nim
windows-xp
babel
pagespeed
string-concatenation
mongoid6
epsilon
jboss6.x
login-script
nested-lists
slacktextviewcontroller
apiary.io
alphabetical
release
loading
apache-stanbol
doc
microsoft-metro
smoothstate.js
android-exoplayer
signal-strength
optimizely
singleinstance
scalding
azure-cli
java-bytecode-asm
boo
payload
mathcad
simplepie
ziparchive
synonym
qiime
aurora
fiware-monitoring
morton-number
intel-c++
poppler
finalbuilder
phpldapadmin
infosphere-spl
cosine-similarity
ghcjs
grails-domain-class
extjs2
mt4j
nevron
node-blade
dolby-audio-api
jquery-1.9
swfobject
web-notifications
qi4j
midlet
iboutlet
subgraph
kqueue
luabind
flex-mobile
promotion-code
android-holo-everywhere
pylucene
timertask
request-headers
build-environment
tui
unmanagedresources
dsoframer
wspbuilder

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App