展开式收藏夹在增加分类数目统计

This commit is contained in:
sonichy 2023-03-25 13:28:01 +08:00
parent 02b04aa416
commit 44b62d73ae
4 changed files with 29 additions and 19 deletions

BIN
app.apk

Binary file not shown.

View File

@ -12,7 +12,6 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
@ -36,7 +35,6 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TextView;
@ -76,7 +74,7 @@ public class FavoriteActivity extends Activity {
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String url = ((TextView) arg1.findViewById(R.id.website)).getText().toString();
String url = ((TextView) arg1.findViewById(R.id.group_count)).getText().toString();
Intent intent = new Intent(FavoriteActivity.this, MainActivity.class);
intent.putExtra("url", url);
setResult(RESULT_OK, intent);
@ -89,7 +87,7 @@ public class FavoriteActivity extends Activity {
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
String title = ((TextView) info.targetView.findViewById(R.id.title)).getText().toString();
String title = ((TextView) info.targetView.findViewById(R.id.group_name)).getText().toString();
menu.setHeaderIcon(R.drawable.link);
menu.setHeaderTitle(title);
String[] sm = { "在新窗口中打开", "复制链接", "分享", "修改", "删除" };
@ -253,8 +251,8 @@ public class FavoriteActivity extends Activity {
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
position = listView.getFirstVisiblePosition();
final String sid = ((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString();
final String title = ((TextView) menuInfo.targetView.findViewById(R.id.title)).getText().toString();
final String url = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
final String title = ((TextView) menuInfo.targetView.findViewById(R.id.group_name)).getText().toString();
final String url = ((TextView) menuInfo.targetView.findViewById(R.id.group_count)).getText().toString();
final String category = ((TextView) menuInfo.targetView.findViewById(R.id.category)).getText().toString();
switch (item.getItemId()) {
case 0:
@ -423,7 +421,7 @@ public class FavoriteActivity extends Activity {
int count = cursor1.getCount();
setTitle("收藏夹 - " + s + " " + count);
String[] from = { "_id", "title", "website", "category", "website" };
int[] to = { R.id.id, R.id.title, R.id.website, R.id.category, R.id.imageView_favicon };
int[] to = { R.id.id, R.id.group_name, R.id.group_count, R.id.category, R.id.imageView_favicon };
adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, cursor1, from, to, 0);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder(){
public boolean setViewValue(View view, Cursor cursor, int columnIndex){

View File

@ -17,18 +17,18 @@ import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.SimpleCursorTreeAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import org.w3c.dom.Text;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
@ -48,7 +48,7 @@ public class FavoriteActivity1 extends Activity {
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
String url = ((TextView) v.findViewById(R.id.website)).getText().toString();
String url = ((TextView) v.findViewById(R.id.group_count)).getText().toString();
Intent intent = new Intent(FavoriteActivity1.this, MainActivity.class);
intent.putExtra("url", url);
setResult(RESULT_OK, intent);
@ -70,7 +70,7 @@ public class FavoriteActivity1 extends Activity {
menu.add(0, i, i, sm[i]);
}
} else if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
String title = ((TextView) info.targetView.findViewById(R.id.title)).getText().toString();
String title = ((TextView) info.targetView.findViewById(R.id.group_name)).getText().toString();
menu.setHeaderIcon(R.drawable.link);
menu.setHeaderTitle(title);
String[] sm = { "在新窗口中打开", "复制链接", "分享", "修改", "删除" };
@ -83,11 +83,21 @@ public class FavoriteActivity1 extends Activity {
DBHelper helper = new DBHelper(this);
Cursor groupCursor = helper.category();
SimpleCursorTreeAdapter adapter = new MyExpandableListAdapter(groupCursor, this, android.R.layout.simple_expandable_list_item_1, R.layout.favorite_row, new String[] { "category" }, new int[] { android.R.id.text1 }, new String[] { "_id", "title", "website", "category", "website" }, new int[] { R.id.id, R.id.title, R.id.website, R.id.category, R.id.imageView_favicon });
// android.R.layout.simple_expandable_list_item_1 -> R.layout.group_row
// android.R.id.text1 -> R.id.group_name, R.id.group_count
SimpleCursorTreeAdapter adapter = new MySimpleCursorTreeAdapter(groupCursor, this, R.layout.group_row, R.layout.favorite_row, new String[] { "category", "category" }, new int[] { R.id.group_name, R.id.group_count }, new String[] { "_id", "title", "website", "category", "website" }, new int[] { R.id.id, R.id.title, R.id.website, R.id.category, R.id.imageView_favicon });
adapter.setViewBinder(new SimpleCursorTreeAdapter.ViewBinder(){
public boolean setViewValue(View view, Cursor cursor, int columnIndex){
//Log.e(Thread.currentThread().getStackTrace()[2] + "", view.toString() + cursor.getCount());
if (view.getId() == R.id.imageView_favicon) {
if (view.getId() == R.id.group_count) {
TextView textView = (TextView) view;
String s = cursor.getString(columnIndex);
DBHelper helper = new DBHelper(FavoriteActivity1.this);
Cursor cursor1 = helper.queryCategory(s);
int count = cursor1.getCount();
textView.setText("" + count);
return true;
} else if (view.getId() == R.id.imageView_favicon) {
String website = cursor.getString(columnIndex);
if (website.startsWith("https://")) {
((ImageView) view).setImageResource(android.R.drawable.ic_secure);
@ -104,10 +114,14 @@ public class FavoriteActivity1 extends Activity {
}
});
expandableListView.setAdapter(adapter);
Cursor cursor = helper.query("");
int count = cursor.getCount();
setTitle("收藏夹 " + count);
}
public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {
public MyExpandableListAdapter(Cursor cursor, Context context, int groupLayout, int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom, int[] childrenTo) {
public class MySimpleCursorTreeAdapter extends SimpleCursorTreeAdapter {
public MySimpleCursorTreeAdapter(Cursor cursor, Context context, int groupLayout, int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom, int[] childrenTo) {
super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childrenFrom, childrenTo);
}
@ -255,8 +269,8 @@ public class FavoriteActivity1 extends Activity {
break;
case 1:
final String sid = ((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString();
final String title = ((TextView) menuInfo.targetView.findViewById(R.id.title)).getText().toString();
final String url = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
final String title = ((TextView) menuInfo.targetView.findViewById(R.id.group_name)).getText().toString();
final String url = ((TextView) menuInfo.targetView.findViewById(R.id.group_count)).getText().toString();
final String category = ((TextView) menuInfo.targetView.findViewById(R.id.category)).getText().toString();
switch (item.getItemId()) {
case 0:

View File

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"