前文:
桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 7
导航:
桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The End 导航页及收尾工作
四、查单词功能的实现。
(1)取消Bottom Navigation Activity模板的顶栏空白。
将
android:paddingTop="?attr/actionBarSize"
删除即可取消Bottom Navigation Activity模板的顶栏空白。
(2)实现安卓9.0后webview载入网页。
在manifest添加
android:usesCleartextTraffic="true"
即可实现。
(3)以OneFragment为查询单词界面,进行UI布局。
fragment_one.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
app:layout_constraintGuide_percent="0.75">
<EditText
android:id="@+id/editTextTextPersonName3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:ems="12"
android:hint="@string/search"
android:imeOptions="actionSearch"
android:inputType="textPersonName"
android:minHeight="48dp"
android:singleLine="true"
app:layout_constraintEnd_toStartOf="@+id/guideline11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline9" />
<ImageButton
android:id="@+id/imageButton7"
android:layout_width="50dp"
android:layout_height="50dp"
android:backgroundTint="#00FFFFFF"
android:contentDescription="@string/TODO"
android:src="@drawable/ic_baseline_search_24"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline11"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.03" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="312dp"
app:layout_constraintGuide_percent="0.7" />
<ImageView
android:id="@+id/imageView8"
android:layout_width="50dp"
android:layout_height="50dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.506"
app:layout_constraintStart_toStartOf="@+id/guideline11"
app:layout_constraintTop_toBottomOf="@+id/imageButton7"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/ic_baseline_close_24" />
<WebView
android:id="@+id/webview"
android:layout_width="409dp"
android:layout_height="629dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
需要用到的矢量图:
@drawable/ic_baseline_close_24
@drawable/ic_baseline_search_24
(4) 在Manifest添加权限。(互联网权限)
<uses-permission android:name="android.permission.INTERNET" />
(5)锁定导航栏,防止软键盘将导航栏顶起。
在Manifest的activity里:
即可解决。
(6)编辑OneFragment的代码。
OneFragment.java
package com.example.peachdictionary;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class OneFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
WebView webView = getView().findViewById(R.id.webview);
ImageButton imageButton7 = getView().findViewById(R.id.imageButton7);
imageButton7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getdata();
}
});
//软键盘
EditText editText = getView().findViewById(R.id.editTextTextPersonName3);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
getdata();
}
return false;
}
});
ImageView imageView8 = getView().findViewById(R.id.imageView8);
imageView8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//链接一张白色图片
webView.loadUrl("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage.110go.com%2Fupload%2Ftpk%2F180743034.jpg&refer=http%3A%2F%2Fimage.110go.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1642493799&t=0b0f3e6ac47ea94df25b112ff7ea53a6");
}
});
}
public void getdata() {
EditText editText = getView().findViewById(R.id.editTextTextPersonName3);
String str = editText.getText().toString();
WebView webView = getView().findViewById(R.id.webview);
webView.loadUrl("http://m.youdao.com/dict?le=eng&q="+str);
}
}