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(); // 初次加载完数据后,调用一次过滤方法来显示数据
}
}
}
浙公网安备 33010602011771号