Answered step by step
Verified Expert Solution
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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started