Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I have the following code package com.deitel.addressbook; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import java.lang.Object; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar;

I have the following code

package com.deitel.addressbook; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import java.lang.Object; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.*; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.GridLayout; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.deitel.addressbook.data.AddressBookDatabaseHelper; import com.deitel.addressbook.data.DatabaseDescription; import java.util.*; import java.util.List; public class AddEdit extends AppCompatActivity { private ViewPager mViewPager; private PageViewAdapter1 slider; private List informatn = new ArrayList<>(); private int current; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_edit); Toolbar tool=(Toolbar) findViewById(R.id.toolbar1); setSupportActionBar(tool); Log.d("m","addedit on create instantiated"); mViewPager=(ViewPager) findViewById(R.id.pager); slider=new PageViewAdapter1(this); if( !slider.equals(null)) Log.d("m","slider NOT null"+current); mViewPager.setAdapter(slider); Log.d("m","current inside oncreate"+current); mViewPager.setCurrentItem(current); if(mViewPager.isShown()) Log.d("m","viewpager is shown"); // load the contact   // getSupportLoaderManager().initLoader(CONTACT_LOADER, null, this);   } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater findMenuItems = getMenuInflater(); findMenuItems.inflate(R.menu.fragment_details_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_delete: Toast.makeText(AddEdit.this,"delete ",Toast.LENGTH_LONG).show(); break; case R.id.action_edit: finish(); break; } return super.onOptionsItemSelected(item); } public class PageViewAdapter1 extends PagerAdapter { private Context mcontext; public String mname=getIntent().getStringExtra("contact"); List informatn = new ArrayList<>(); private SQLiteDatabase mDatabase; public PageViewAdapter1(Context context) { this.mcontext = context; Log.d("m","adapter called"); Log.d("m","name"+" "+mname); informatn=getInfos(); Collections.sort(informatn,new MyCompName()); insertPostion(mname); } @Override public int getCount() { return informatn.size(); } @Override public boolean isViewFromObject(View view, Object object) { return (view==(View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { LayoutInflater mInflater=(LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View item_view=mInflater.inflate(R.layout.detail,container,false); try  { Log.d("m","instantiateItem"); TextView nameTextView; // displays contact's name  TextView phoneTextView; // displays contact's phone  TextView emailTextView; // displays contact's email  TextView streetTextView; // displays contact's street  TextView cityTextView; // displays contact's city  TextView stateTextView; // displays contact's state   TextView zipTextView; // displays contact's zip   // get the EditTexts   nameTextView = (TextView) item_view.findViewById(R.id.nameTextView1); phoneTextView = (TextView) item_view.findViewById(R.id.phoneTextView1); emailTextView = (TextView) item_view.findViewById(R.id.emailTextView1); streetTextView = (TextView) item_view.findViewById(R.id.streetTextView1); cityTextView = (TextView) item_view.findViewById(R.id.cityTextView1); stateTextView = (TextView) item_view.findViewById(R.id.stateTextView1); zipTextView = (TextView) item_view.findViewById(R.id.zipTextView1); nameTextView.setText(informatn.get(position).name); phoneTextView.setText(informatn.get(position).phone); streetTextView.setText(informatn.get(position).street); emailTextView.setText(informatn.get(position).eamil); cityTextView.setText(informatn.get(position).City); stateTextView.setText(informatn.get(position).state); zipTextView.setText(informatn.get(position).zip); container.addView(item_view); } catch(Exception e) { e.printStackTrace(); } return item_view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((GridLayout)object); } private ACursorWrapper queryInfo(String whereClause, String[] whereArgs){ mDatabase = new AddressBookDatabaseHelper(mcontext) .getWritableDatabase(); Cursor cursor = mDatabase.query( DatabaseDescription.Contact.TABLE_NAME, null, // columns - null selects all columns  whereClause, whereArgs, null, // groupBy  null, // having  null // orderBy  ); return new ACursorWrapper(cursor); } public List getInfos() { List information = new ArrayList<>(); ACursorWrapper cursor = queryInfo(null, null); try { cursor.moveToFirst(); while (!cursor.isAfterLast()) { information.add(cursor.getInfo()); cursor.moveToNext(); } } finally { cursor.close(); } return information; } public Info getInfo(int id) { ACursorWrapper cursor = queryInfo( DatabaseDescription.Contact._ID + " = ?", new String[] { id+"" } ); try { if (cursor.getCount() == 0) { return null; } cursor.moveToFirst(); return cursor.getInfo(); } finally { cursor.close(); } } } public void insertPostion(String name){ for(int i=0;i<informatn.size();i++){ informatn.get(i).current=i; Log.d("m","indexes"+i); } for(int i=0;i<informatn.size();i++){ Log.d("m","current"+i); if(informatn.get(i).name.equals(name)) { current = i; break; } } } class MyCompName implements Comparator { // eclipse ask for casting object  public int compare(Object emp1, Object emp2) { String emp1Name = ((Info) emp1).name; String emp2Name = ((Info) emp2).name; return emp1Name.compareTo(emp2Name); //return (int)((emp2Name*100) - (emp1Name*100.0));  } } } there are two problems the first one is that the menu items action_edit and action_delete are not responding when clicked
 second when you see the mentod mamed insertPostion(String name) not is called PageViewAdapter1 consructor howeve the method doesnot execute or does not do what is supposed to do
 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

How To Build A Million Dollar Database

Authors: Michelle Bergquist

1st Edition

0615246842, 978-0615246840

More Books

Students also viewed these Databases questions