5.27

安卓政务查询系统
• 所花时间:2
• 代码行数:404
• 博客容量:1
• 代码如下:

package com.example.androidpolicy;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class MainActivity extends AppCompatActivity {

    private ViewPager viewPager;
    private RadioGroup radioGroup;
    private RadioButton radioPolicyFullText;
    private RadioButton radioPolicyHighlights;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager = findViewById(R.id.viewPager);
        radioGroup = findViewById(R.id.radioGroup);
        radioPolicyFullText = findViewById(R.id.radio_policy_full_text);
        radioPolicyHighlights = findViewById(R.id.radio_policy_highlights);

        setupViewPager(viewPager);
        setupRadioGroup();
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new PolicyFullTextFragment());
        adapter.addFragment(new PolicyHighlightsFragment());
        viewPager.setAdapter(adapter);

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                switch (position) {
                    case 0:
                        radioPolicyFullText.setChecked(true);
                        break;
                    case 1:
                        radioPolicyHighlights.setChecked(true);
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
    }




    private void setupRadioGroup() {
        radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
            if(checkedId==R.id.radio_policy_full_text)
            {
                viewPager.setCurrentItem(0);
            } else if (checkedId==R.id.radio_policy_highlights) {
                viewPager.setCurrentItem(1);
            }
        });
    }
}
package com.example.androidpolicy;

import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import entity.Policy;

public class PolicyDetailActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_policy_detail);

        TextView tv1 = findViewById(R.id.policyNameTextView);
        WebView tv2 = findViewById(R.id.policyContentTextView); // Updated ID to WebView

        // Retrieve the policy object from the Intent
        Policy policy = (Policy) getIntent().getSerializableExtra("policy");

        if (policy != null) {
            // Set the policy name
            tv1.setText(policy.getName());

            WebSettings webSettings = tv2.getSettings();
            webSettings.setJavaScriptEnabled(true); // Enable JavaScript if needed
            webSettings.setLoadWithOverviewMode(true);
            webSettings.setUseWideViewPort(true);


            tv2.loadData(policy.getText(), "text/html", "UTF-8");

            // To handle URL clicks within the WebView itself
            tv2.setWebViewClient(new WebViewClient());
        }
    }
}
package com.example.androidpolicy;

import entity.Policy;
import entity.PolicyAdapter;
import entity.PolicyDAO;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioGroup;

import java.util.ArrayList;
import java.util.List;

public class PolicyFullTextFragment extends Fragment {

    private EditText searchEditText;
    private RadioGroup filterRadioGroup;
    private ListView policyListView;
    private PolicyAdapter policyAdapter;
    private List<Policy> policyList;
    private List<Policy> filteredList;
    private PolicyDAO policyDAO;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_policy_full_text, container, false);
        searchEditText = view.findViewById(R.id.searchEditText);
        filterRadioGroup = view.findViewById(R.id.filterRadioGroup);
        policyListView = view.findViewById(R.id.policyListView);

        policyDAO = new PolicyDAO();
        policyList = new ArrayList<>();
        filteredList = new ArrayList<>();
        policyAdapter = new PolicyAdapter(getContext(), filteredList);
        policyListView.setAdapter(policyAdapter);

        // 设置搜索框监听器
        searchEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                filterPolicies();
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });

        // 设置单选框监听器
        filterRadioGroup.setOnCheckedChangeListener((group, checkedId) -> filterPolicies());

        // 设置ListView点击监听器
        policyListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Policy selectedPolicy = filteredList.get(position);
                Intent intent = new Intent(getActivity(), PolicyDetailActivity.class);
                intent.putExtra("policy", selectedPolicy); // assuming Policy is Serializable
                startActivity(intent);
            }
        });

        // 加载政策数据
        new LoadPoliciesTask().execute();

        return view;
    }

    private void filterPolicies() {
        String query = searchEditText.getText().toString().toLowerCase();
        int checkedId = filterRadioGroup.getCheckedRadioButtonId();

        filteredList.clear();
        for (Policy policy : policyList) {
            boolean matches = false;
            if (checkedId == R.id.radio_national && policy.getRange().contains("")) {
                matches = true;
            } else if (checkedId == R.id.radio_hebei && policy.getRange().contains("河北")) {
                matches = true;
            } else if (checkedId == R.id.radio_other_provinces && !policy.getRange().contains("河北")) {
                matches = true;
            }

            if (matches && policy.getName().toLowerCase().contains(query)) {
                filteredList.add(policy);
            }
        }
        policyAdapter.notifyDataSetChanged();
    }

    private class LoadPoliciesTask extends AsyncTask<Void, Void, List<Policy>> {
        @Override
        protected List<Policy> doInBackground(Void... voids) {
            return policyDAO.queryAll();
        }

        @Override
        protected void onPostExecute(List<Policy> policies) {
            policyList.clear();
            policyList.addAll(policies);
            filterPolicies(); // 初次加载完数据后,调用一次过滤方法来显示数据
        }
    }
}

posted @ 2024-05-27 20:56  aallofitisst  阅读(14)  评论(0)    收藏  举报