补18
文章目錄
- 創建contentactivity(顯示古詩詞)
- 編寫布局文件activity_main.xml
- 編寫String
- 編寫主界面類
- 創建古詩列表文件
- 編寫activity_content.xml
- 編寫contentActivity.java
- 運行效果
創建contentactivity(顯示古詩詞)
編寫布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorAccent"android:padding="15dp"tools:context=".MainActivity"><ListViewandroid:id="@+id/lvPoemTitle"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="#aaaaaa"android:dividerHeight="0.5dp" /></LinearLayout>編寫String
<resources><string name="app_name">閱讀古詩</string><string name="back">返回目錄</string><string-array name="titles"><item>靜夜思</item><item>登鸛雀樓</item><item>相思</item><item>聽彈琴</item><item>登樂游原</item><item>朝發白帝城</item><item>巴山夜雨</item><item>渭城曲</item><item>春夜喜雨</item><item>離離原上草</item><item>示兒</item></string-array><string-array name="authors"><item>唐·李白</item><item>唐·王之渙</item><item>唐·王維</item><item>唐·劉長卿</item><item>唐·李商隱</item><item>唐·李白</item><item>唐·杜牧</item><item>唐·王維</item><item>唐·杜甫</item><item>唐·白居易</item><item>宋·陸游</item></string-array><string-array name="contents"><item>床前明月光,\n疑是地上霜。\n舉頭望明月,\n低頭思故鄉。</item><item>白日依山盡,\n黃河入海流。\n欲窮千里目,\n更上一層樓。</item><item>紅豆生南國,\n春來發幾枝。\n愿君多采擷,\n此物最相思。</item><item>泠泠七弦上,\n靜聽松風寒。\n古調雖自愛,\n今人多不彈。</item><item>向晚意不適,\n驅車登古原。\n夕陽無限好,\n只是近黃昏。</item><item>朝辭白帝彩云間,\n千里江陵一日還。\n兩岸猿聲啼不住,\n輕舟已過萬重山。</item><item>君問歸期未有期,\n巴山夜雨漲秋池。\n何當共剪西窗燭,\n卻話巴山夜雨時。</item><item>渭城朝雨浥輕塵,\n客舍青青柳色新。\n勸君更盡一杯酒,\n西出陽關無故人。</item><item>好雨知時節,當春乃發生。\n隨風潛入夜,潤物細無聲。\n野徑云俱黑,江船火獨明。\n曉看紅濕處,花重錦官城。</item><item>離離原上草,一歲一枯榮。\n野火燒不盡,春風吹又生。\n遠芳侵古道,晴翠接荒城。\n又送王孫去,萋萋滿別情。</item><item>死去元知萬事空,\n但悲不見九州同。\n王師北定中原日,\n家祭無忘告乃翁。\n死去元知萬事空,\n但悲不見九州同。\n王師北定中原日,\n家祭無忘告乃翁。\n死去元知萬事空,\n但悲不見九州同。\n王師北定中原日,\n家祭無忘告乃翁。\n死去元知萬事空,\n但悲不見九州同。\n王師北定中原日,\n家祭無忘告乃翁。\n死去元知萬事空,\n但悲不見九州同。\n王師北定中原日,\n家祭無忘告乃翁。</item></string-array></resources>編寫主界面類
package net.zjs.read_ancient_poety;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast;public class MainActivity extends AppCompatActivity {private ListView lvPoemTitle;//顯示古詩標題的列表控件--展示控件private ArrayAdapter<String> adapter;//數組適配器--橋梁控件private String[] strPoemTitles;//古詩標題數組--數據源@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//利用布局資源文件設置用戶界面setContentView(R.layout.activity_main);//通過資源標識符獲取控件實例lvPoemTitle=findViewById(R.id.lvPoemTitle);//初始化古詩標題數組,作為數據源final String[] titles=getResources().getStringArray(R.array.titles);strPoemTitles=new String[titles.length];//分配空間for(int i=0;i<strPoemTitles.length;i++){//遍歷strPoemTitles[i]=(i+1)+"."+titles[i];}//創建數組適配器adapter=new ArrayAdapter<>(this,//參數1:上下文//android.R.layout.simple_list_item_1,//列表項模板(系統布局資源)R.layout.poem_list_item,//自定義的項目模板strPoemTitles//數據源--數組);//給列表控件設置適配器lvPoemTitle.setAdapter(adapter);//給列表控件注冊項目單擊監聽器lvPoemTitle.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(MainActivity.this,"你選擇了第"+(position+1)+"首古詩【"+titles[position]+"】",Toast.LENGTH_SHORT).show();//創建界面跳轉的意圖Intent intent=new Intent(MainActivity.this,ContentActivity.class);//通過意圖攜帶數據intent.putExtra("position",position);//按照意圖啟動目標組件startActivity(intent);}});} }創建古詩列表文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorAccent"android:padding="15dp"tools:context=".MainActivity"><ListViewandroid:id="@+id/lvPoemTitle"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="#aaaaaa"android:dividerHeight="0.5dp" /></LinearLayout>編寫activity_content.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorAccent"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/tvTitle"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_marginBottom="20dp"android:layout_weight="1"android:gravity="center_vertical"android:textColor="#ff00ff"android:textSize="30sp" /><TextViewandroid:id="@+id/tvAuthor"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_marginBottom="20dp"android:layout_weight="1"android:gravity="center_vertical"android:textColor="#000000"android:textSize="18sp" /><ScrollViewandroid:layout_width="match_parent"android:layout_height="0dp"android:scrollbars="vertical"android:layout_weight="8"><TextViewandroid:id="@+id/tvContent"android:layout_width="match_parent"android:layout_height="0dp"android:layout_marginBottom="20dp"android:textColor="#0000ff"android:textSize="20sp"android:gravity="center_horizontal"/></ScrollView><Buttonandroid:id="@+id/tvBack"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:onClick="doBack"android:text="@string/back"android:textSize="20sp" /> </LinearLayout>編寫contentActivity.java
package net.zjs.read_ancient_poety;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView;public class ContentActivity extends AppCompatActivity {//聲明變量private TextView tvTitle;private TextView tvAuthor;private TextView tvContent;private String[] titles;private String[] contents;private String[] authors;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//利用布局資源設置布局界面setContentView(R.layout.activity_content);//通過資源標識符獲取控件實例tvTitle = findViewById(R.id.tvTitle);tvAuthor = findViewById(R.id.tvAuthor);tvContent = findViewById(R.id.tvContent);//獲取窗口跳轉意圖Intent intent = getIntent();//判斷意圖是否為空if (intent != null) {//獲取意圖所攜帶的數據int position = intent.getIntExtra("position", 0);//獲取古詩標題數組titles = getResources().getStringArray(R.array.titles);//獲取古詩內容數組contents = getResources().getStringArray(R.array.contents);//獲取古詩作者數組authors=getResources().getStringArray(R.array.authors);//設置古詩標題標簽文本tvTitle.setText(titles[position]);//設置古詩作者標簽文本tvAuthor.setText(authors[position]);//設置古詩內容標簽文本tvContent.setText(contents[position]);}}/** 返回目錄按鈕單擊事件處理方法* */public void doBack(View view){finish();} }運行效果
總結