Editing entries

This commit is contained in:
Przemek Grondek 2014-08-13 00:17:03 +02:00
parent f5b99dbc71
commit bfc1203e44
4 changed files with 61 additions and 11 deletions

View file

@ -5,6 +5,7 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import java.util.List; import java.util.List;
@ -14,14 +15,21 @@ import java.util.List;
*/ */
public class ElementArrayAdapter extends ArrayAdapter<String> { public class ElementArrayAdapter extends ArrayAdapter<String> {
private Context context; private Context context;
private List<String> fields;
private List<String> values; private List<String> values;
private int layout; private int layout;
public ElementArrayAdapter(Context context, int resource, List<String> objects) { public ElementArrayAdapter(Context context, int resource, List<String> fields) {
super(context, resource, objects); super(context, resource, fields);
this.context = context; this.context = context;
values = objects; this.fields = fields;
layout = resource; layout = resource;
values = null;
}
public ElementArrayAdapter(Context context, int resource, List<String> fields, List<String> values) {
this(context, resource, fields);
this.values = values;
} }
@Override @Override
@ -30,7 +38,11 @@ public class ElementArrayAdapter extends ArrayAdapter<String> {
View rowView = layoutInflater.inflate(layout, parent, false); View rowView = layoutInflater.inflate(layout, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.textFieldName); TextView textView = (TextView) rowView.findViewById(R.id.textFieldName);
textView.setText(values.get(position)); textView.setText(fields.get(position));
if(values != null){
EditText textFieldName = (EditText) rowView.findViewById(R.id.editFieldValue);
textFieldName.setText(values.get(position));
}
return rowView; return rowView;
} }

View file

@ -23,6 +23,9 @@ import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector;
* Created by nerull7 on 2014-08-06. * Created by nerull7 on 2014-08-06.
*/ */
public class ElementFragment extends Fragment implements AsyncDatabaseConnector.ListReturnListener { public class ElementFragment extends Fragment implements AsyncDatabaseConnector.ListReturnListener {
public static final String EDIT_ELEMENT = "edit_element";
public static final String EDIT_LIST = "edit_element_list";
private String databaseName; private String databaseName;
private String tableName; private String tableName;
private ListAdapter listAdapter; private ListAdapter listAdapter;
@ -30,6 +33,8 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
private ProgressBar progressBar; private ProgressBar progressBar;
private ListView listView; private ListView listView;
private List<String> values;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment //Inflate the layout for this fragment
@ -48,6 +53,10 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
private void initArguments() { private void initArguments() {
databaseName = getArguments().getString(Static.DATABASE_NAME_ARG); databaseName = getArguments().getString(Static.DATABASE_NAME_ARG);
tableName = getArguments().getString(Static.TABLE_NAME_ARG); tableName = getArguments().getString(Static.TABLE_NAME_ARG);
if(getArguments().getBoolean(EDIT_ELEMENT))
values = getArguments().getStringArrayList(EDIT_LIST);
else
values = null;
} }
@Override @Override
@ -58,7 +67,7 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
@Override @Override
public void onListReturn(List<String> fields) { public void onListReturn(List<String> fields) {
listAdapter = new ElementArrayAdapter(getActivity(), R.layout.list_item_element_simple, fields); listAdapter = new ElementArrayAdapter(getActivity(), R.layout.list_item_element_simple, fields, values);
listView.setAdapter(listAdapter); listView.setAdapter(listAdapter);
// databasesListView.setAdapter(listAdapter); // databasesListView.setAdapter(listAdapter);
// databasesListView.setOnItemClickListener(this); // databasesListView.setOnItemClickListener(this);

View file

@ -1,10 +1,17 @@
package info.nerull7.mysqlbrowser; package info.nerull7.mysqlbrowser;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Fragment; import android.app.Fragment;
import android.content.Intent; import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -12,6 +19,7 @@ import android.view.MenuItem;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.HorizontalScrollView; import android.widget.HorizontalScrollView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@ -21,6 +29,9 @@ import android.widget.TableLayout;
import android.widget.TableRow; import android.widget.TableRow;
import android.widget.TextView; import android.widget.TextView;
import org.w3c.dom.Text;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector; import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector;
@ -28,7 +39,7 @@ import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector;
/** /**
* Created by nerull7 on 15.07.14. * Created by nerull7 on 15.07.14.
*/ */
public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.MatrixReturnListener, AsyncDatabaseConnector.ListReturnListener, AsyncDatabaseConnector.IntegerReturnListener { public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.MatrixReturnListener, AsyncDatabaseConnector.ListReturnListener, AsyncDatabaseConnector.IntegerReturnListener, View.OnClickListener {
private static final int HEADER_PADDING_TOP = 15; private static final int HEADER_PADDING_TOP = 15;
private static final int HEADER_PADDING_BOTTOM = 15; private static final int HEADER_PADDING_BOTTOM = 15;
private static final int HEADER_PADDING_LEFT = 15; private static final int HEADER_PADDING_LEFT = 15;
@ -51,6 +62,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
private int entriesLimit; private int entriesLimit;
private int page; private int page;
private int pageCount; private int pageCount;
private int rowCount;
private ProgressBar progressBar; private ProgressBar progressBar;
private CustomScrollView fakeScrollView; private CustomScrollView fakeScrollView;
private View dummyView; private View dummyView;
@ -96,8 +108,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
fakeScrollView.setOnTouchEventListener(new CustomScrollView.OnTouchEventListener() { fakeScrollView.setOnTouchEventListener(new CustomScrollView.OnTouchEventListener() {
@Override @Override
public boolean onTouchEvent(MotionEvent ev) { public boolean onTouchEvent(MotionEvent ev) {
entriesScrollView.onTouchEvent(ev); entriesScrollView.dispatchTouchEvent(ev);
horizontalScrollView.onTouchEvent(ev);
return true; return true;
} }
}); });
@ -197,8 +208,11 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
textView.setLayoutParams(layoutParams); textView.setLayoutParams(layoutParams);
textView.setPadding(ENTRIES_PADDING_LEFT, ENTRIES_PADDING_TOP, ENTRIES_PADDING_RIGHT, ENTRIES_PADDING_BOTTOM); textView.setPadding(ENTRIES_PADDING_LEFT, ENTRIES_PADDING_TOP, ENTRIES_PADDING_RIGHT, ENTRIES_PADDING_BOTTOM);
textView.setBackgroundResource(background); textView.setBackgroundResource(background);
textView.setId(j);
newRow.addView(textView); newRow.addView(textView);
} }
newRow.setClickable(true);
newRow.setOnClickListener(this);
entriesTable.addView(newRow); entriesTable.addView(newRow);
syncWidths(); syncWidths();
@ -222,6 +236,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
// First we need header // First we need header
headerRow = new TableRow(getActivity()); headerRow = new TableRow(getActivity());
headerRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); headerRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
rowCount = fieldList.size();
for(int i =0;i<fieldList.size();i++){ for(int i =0;i<fieldList.size();i++){
TextView textView = new TextView(getActivity()); TextView textView = new TextView(getActivity());
textView.setText(fieldList.get(i)); textView.setText(fieldList.get(i));
@ -290,5 +305,20 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
fakeScrollView.setLayoutParams(fakeScrollLayout); fakeScrollView.setLayoutParams(fakeScrollLayout);
} }
@Override
public void onClick(View view) {
ArrayList<String> values = new ArrayList<String>();
for(int i=0;i<rowCount;i++){
TextView element = (TextView)view.findViewById(i);
values.add(element.getText().toString());
// element.setBackgroundResource(android.R.color.holo_blue_bright);
}
Intent intent = new Intent(getActivity(), ElementActivity.class);
intent.putExtra(Static.DATABASE_NAME_ARG,databaseName);
intent.putExtra(Static.TABLE_NAME_ARG,tableName);
intent.putExtra(ElementFragment.EDIT_ELEMENT, true);
intent.putStringArrayListExtra(ElementFragment.EDIT_LIST, values);
startActivity(intent);
}
} }

View file

@ -5,8 +5,8 @@
tools:context="info.nerull7.mysqlbrowser.EntriesFragment"> tools:context="info.nerull7.mysqlbrowser.EntriesFragment">
<HorizontalScrollView <HorizontalScrollView
android:layout_width="wrap_content" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="fill_parent"
android:id="@+id/horizontalScrollView" > android:id="@+id/horizontalScrollView" >
<RelativeLayout <RelativeLayout
@ -48,7 +48,6 @@
<info.nerull7.mysqlbrowser.CustomScrollView <info.nerull7.mysqlbrowser.CustomScrollView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_below="@+id/loginProgressBar"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:foregroundGravity="right" android:foregroundGravity="right"
android:id="@+id/fakeScroll" android:id="@+id/fakeScroll"