I need to set 2 condition in the if-statement
(if this or this), the first part take an item
from a listview
, and the other if
-part get the value from the first activity
if it's true
then do the condition need. See the 2 codes below may will explain it better.
putExtra code
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView thisTextView = (TextView)view.findViewById(R.id.listview_item_title);
String text = (String)thisTextView.getText();
if (text.equals("Category")) {
Intent i = new Intent(Search.this,MainActivity.class);
i.putExtra("sendData", 1);
startActivity(i);
}
}
getExtra Code
public class MainActivity extends Activity implements OnItemClickListener{
//private boolean mainSub,manuSub = false;
private int mainSub=0;
ListView lv;
String [] list;
int mine;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.listView);
list = getResources().getStringArray(R.array.main);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list));
lv.setOnItemClickListener(this);
Intent myIntent = getIntent();
mine = myIntent.getExtras().getInt("sendData");
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent i = new Intent(MainActivity.this, SwipeActivity.class);
if (lv.getItemAtPosition(position).toString().equalsIgnoreCase("Search")){
i = new Intent(MainActivity.this, Search.class);
startActivity(i);
}
else if (lv.getItemAtPosition(position).toString().equalsIgnoreCase("Category") || mine == 1) {
lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.Category)));
mainSub = 1;
}
I gives the to parameters of putExtra(name,value)
as name=sendData
value=1
. then when I'm trying to get the Intent
then the program gives an Exception and not started. I know that the error is in in the getExtras
line --> mine = myIntent.getExtras().getInt("sendData");
but actually I don't know why it seems to be an error. because I think that every think is fine with coding!.
LogCat
05-02 18:06:05.218: D/SecWifiDisplayUtil(11595): Metadata value : none
05-02 18:06:05.293: D/PhoneWindow(11595): *FMB* installDecor mIsFloating : false
05-02 18:06:05.293: D/PhoneWindow(11595): *FMB* installDecor flags : 8454400
05-02 18:06:05.298: D/AbsListView(11595): Get MotionRecognitionManager
05-02 18:06:05.303: E/MotionRecognitionManager(11595): mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@8bebba7
05-02 18:06:05.303: E/MotionRecognitionManager(11595): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@208cf854
05-02 18:06:05.303: E/MotionRecognitionManager(11595): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@208cf854
05-02 18:06:05.308: D/AndroidRuntime(11595): Shutting down VM
05-02 18:06:05.308: E/AndroidRuntime(11595): FATAL EXCEPTION: main
05-02 18:06:05.308: E/AndroidRuntime(11595): Process: com.example.shaymatest, PID: 11595
05-02 18:06:05.308: E/AndroidRuntime(11595): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shaymatest/com.example.shaymatest.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3149)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread.access$1000(ActivityThread.java:197)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.os.Handler.dispatchMessage(Handler.java:102)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.os.Looper.loop(Looper.java:145)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread.main(ActivityThread.java:6872)
05-02 18:06:05.308: E/AndroidRuntime(11595): at java.lang.reflect.Method.invoke(Native Method)
05-02 18:06:05.308: E/AndroidRuntime(11595): at java.lang.reflect.Method.invoke(Method.java:372)
05-02 18:06:05.308: E/AndroidRuntime(11595): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
05-02 18:06:05.308: E/AndroidRuntime(11595): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
05-02 18:06:05.308: E/AndroidRuntime(11595): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference
05-02 18:06:05.308: E/AndroidRuntime(11595): at com.example.shaymatest.MainActivity.onCreate(MainActivity.java:35)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.Activity.performCreate(Activity.java:6550)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
05-02 18:06:05.308: E/AndroidRuntime(11595): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
05-02 18:06:05.308: E/AndroidRuntime(11595): ... 10 more
05-02 18:06:05.368: I/Process(11595): Sending signal. PID: 11595 SIG: 9