samedi 23 avril 2016

What's wrong with my Android Manifest? [duplicate]

This question already has an answer here:

My program was working fine until I decide to add a new activity(Display) in my manifest and even If I try to revert the changes, still giving me the same error.

: FATAL EXCEPTION: main Process: com.example.carlos.assigmentapp, PID: 3225 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.carlos.assigmentapp/com.example.carlos.assigmentapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 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.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.carlos.assigmentapp.MainActivity.onCreate(MainActivity.java:81) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 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) 

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://ift.tt/nIICcg"
    package="com.example.carlos.assigmentapp">



        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >

            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >

                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>

            </activity>

            <activity android:name=".DisplayValues"/>
            <activity android:name=".Display"/>

        </application>
    </manifest>

Main Activity

package com.example.carlos.assigmentapp;

import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Button;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends ActionBarActivity {
    public final static String EXTRA_MESSAGE = "MESSAGE";
    private ListView obj;
    DBHelper mydb;
    Button hp_1, HP2, fo, previous, home, next,MZ,Control,show;
    int status = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);
        hp_1 = (Button) findViewById(R.id.hp_1);
        HP2 = (Button) findViewById(R.id.HP2);
        fo = (Button) findViewById(R.id.fo);
        previous = (Button) findViewById(R.id.previous);
        home = (Button) findViewById(R.id.home);
        next = (Button) findViewById(R.id.next);
        MZ = (Button) findViewById(R.id.MZ);
        Control = (Button) findViewById(R.id.Control);
        show = (Button) findViewById(R.id.show);

        mydb = new DBHelper(this);
        ArrayList array_list = mydb.getAllCotacts();
        ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list);

        obj = (ListView)findViewById(R.id.listView1);
        obj.setAdapter(arrayAdapter);
        obj.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                // TODO Auto-generated method stub
                int id_To_Search = arg2 + 1;

                Bundle dataBundle = new Bundle();
                dataBundle.putInt("id", id_To_Search);

                Intent intent = new Intent(getApplicationContext(), DisplayValues.class);

                intent.putExtras(dataBundle);
                startActivity(intent);
            }
        });
        hp_1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                status = 1;
                Bundle b = new Bundle();
                b.putInt("status", status);


                Intent i = new Intent(getApplicationContext(), DisplayValues.class);
                i.putExtras(b);

                startActivity(i);

            }
        });

        show.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                status =1;
                Bundle b = new Bundle();
                b.putInt("status", status);






                Intent i = new Intent(getApplicationContext(),DisplayValues.class);
                i.putExtras(b);

                startActivity(i);

            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        super.onOptionsItemSelected(item);

        switch(item.getItemId())
        {
            case R.id.item1:Bundle dataBundle = new Bundle();
                dataBundle.putInt("id", 0);

                Intent intent = new Intent(getApplicationContext(),DisplayValues.class);
                intent.putExtras(dataBundle);

                startActivity(intent);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }



    public boolean onKeyDown(int keycode, KeyEvent event) {
        if (keycode == KeyEvent.KEYCODE_BACK) {
            moveTaskToBack(true);
        }
        return super.onKeyDown(keycode, event);
    }
}

Display activity

package com.example.carlos.assigmentapp;


 import android.os.Bundle;
 import android.app.Activity;
 import android.app.AlertDialog;

 import android.content.DialogInterface;
 import android.content.Intent;
 import android.database.Cursor;

 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;

 import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;



 public class Display extends Activity {
 int from_Where_I_Am_Coming = 0;
 private DBHelper mydb ;

 TextView name ;
 TextView phone;
 TextView email;
 TextView street;
 TextView place;
 int id_To_Update = 0;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.display_data);
 name = (TextView) findViewById(R.id.editTextName);
 phone = (TextView) findViewById(R.id.editTextPhone);
 email = (TextView) findViewById(R.id.editTextStreet);
 street = (TextView) findViewById(R.id.editTextEmail);
 place = (TextView) findViewById(R.id.editTextCity);

 mydb = new DBHelper(this);

 Bundle extras = getIntent().getExtras();
 if(extras !=null)
 {
 int Value = extras.getInt("id");

 if(Value>0){
 //means this is the view part not the add contact part.
 Cursor rs = mydb.getData(Value);
 id_To_Update = Value;
 rs.moveToFirst();

 String nam = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_NAME));
 String phon = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_PHONE));
 String emai = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_EMAIL));
 String stree = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_STREET));
 String plac = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_CITY));

 if (!rs.isClosed())
 {
 rs.close();
 }
 Button b = (Button)findViewById(R.id.show);
 b.setVisibility(View.INVISIBLE);

 name.setText((CharSequence)nam);
 name.setFocusable(false);
 name.setClickable(false);

 phone.setText((CharSequence)phon);
 phone.setFocusable(false);
 phone.setClickable(false);

 email.setText((CharSequence)emai);
 email.setFocusable(false);
 email.setClickable(false);

 street.setText((CharSequence)stree);
 street.setFocusable(false);
 street.setClickable(false);

 place.setText((CharSequence)plac);
 place.setFocusable(false);
 place.setClickable(false);
 }
 }
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 Bundle extras = getIntent().getExtras();

 if(extras !=null)
 {
 int Value = extras.getInt("id");
 if(Value>0){
 getMenuInflater().inflate(R.menu.display_contact, menu);
 }

 else{
 getMenuInflater().inflate(R.menu.main_menu, menu);
 }
 }
 return true;
 }

 public boolean onOptionsItemSelected(MenuItem item)
 {
 super.onOptionsItemSelected(item);
 switch(item.getItemId())
 {
 case R.id.Edit_Contact:
 Button b = (Button)findViewById(R.id.show);
 b.setVisibility(View.VISIBLE);
 name.setEnabled(true);
 name.setFocusableInTouchMode(true);
 name.setClickable(true);

 phone.setEnabled(true);
 phone.setFocusableInTouchMode(true);
 phone.setClickable(true);

 email.setEnabled(true);
 email.setFocusableInTouchMode(true);
 email.setClickable(true);

 street.setEnabled(true);
 street.setFocusableInTouchMode(true);
 street.setClickable(true);

 place.setEnabled(true);
 place.setFocusableInTouchMode(true);
 place.setClickable(true);

 return true;
 case R.id.Delete_Contact:

 AlertDialog.Builder builder = new AlertDialog.Builder(this);
 builder.setMessage(R.string.deleteContact)
 .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int id) {
 mydb.deleteContact(id_To_Update);
 Toast.makeText(getApplicationContext(), "Deleted Successfully", Toast.LENGTH_SHORT).show();
 Intent intent = new Intent(getApplicationContext(),MainActivity.class);
 startActivity(intent);
 }
 })
 .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int id) {
 // User cancelled the dialog
 }
 });
 AlertDialog d = builder.create();
 d.setTitle("Are you sure");
 d.show();

 return true;
 default:
 return super.onOptionsItemSelected(item);

 }
 }

 public void run(View view)
 {
 Bundle extras = getIntent().getExtras();
 if(extras !=null)
 {
 int Value = extras.getInt("id");
 if(Value>0){
 if(mydb.updateContact(id_To_Update,name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){
 Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show();
 Intent intent = new Intent(getApplicationContext(),MainActivity.class);
 startActivity(intent);
 }
 else{
 Toast.makeText(getApplicationContext(), "not Updated", Toast.LENGTH_SHORT).show();
 }
 }
 else{
 if(mydb.insertContact(name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){
 Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show();
 }

 else{
 Toast.makeText(getApplicationContext(), "not done", Toast.LENGTH_SHORT).show();
 }
 Intent intent = new Intent(getApplicationContext(),MainActivity.class);
 startActivity(intent);
 }
 }
 }
 }

I also have a DisplayValues Activity

Aucun commentaire:

Enregistrer un commentaire