android分享2

public class Items {

????private ?int img_id;

????private ?String name;


????public int getImg_id() {

????????return img_id;

????}


????public void setImg_id(int img_id) {

????????this.img_id = img_id;

????}


????public String getName() {

????????return name;

????}


????public void setName(String name) {

????????this.name = name;

????}


????public String getExplain() {

????????return explain;

????}


????public void setExplain(String explain) {

????????this.explain = explain;

????}


????private ?String explain;

}














二、

[if !supportLists]1.?[endif]編寫一個程序,可以顯示實時時間,按返回時有彈出對話框提示是否退出程序,按確認(rèn)后退出程序。

[if !supportLists]2.?[endif]編寫一個程序,按下按鈕后間隔10秒自動彈出一個Toast顯示當(dāng)前時間,按返回時有彈出對話框提示是否退出程序,按確認(rèn)后退出程序。


public?class?MainActivity extends?Activity implements?OnClickListener{

private?AnalogClock clock;

private?Button btn,btn2;

private?DateFormat df;



public?void?onClick(View v) {

// TODO?Auto-generated method stub

switch?(v.getId()) {

case?R.id.button1:

new?AlertDialog.Builder(MainActivity.this)

.setTitle("退出提醒").setMessage("是否退出程序!")

.setNegativeButton("否", null)

.setPositiveButton("確定", new?DialogInterface.OnClickListener() { ?

????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?

????????????????????finish(); ???????????} ????}).show(); break;

case?R.id.button2:

Date curDate = ?new?Date(System.currentTimeMillis());

df?= new?SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String dfs = ?df.format(curDate);

new?AlertDialog.Builder(MainActivity.this)

.setTitle("時間").setMessage(dfs)

.setPositiveButton("返回", new?DialogInterface.OnClickListener() { ?

????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?

???????????????? new?AlertDialog.Builder(MainActivity.this)

???????? .setTitle("退出提醒").setMessage("是否退出程序!")

???????? .setNegativeButton("否", null)

???????? .setPositiveButton("確定", new?DialogInterface.OnClickListener() { ?

????????????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?

????????????????????????????finish(); ?

????????????????????????} ?????}).show(); ?} ??}).show(); break;

default:

break;}}



[if !supportLists]3.?[endif]編寫一個程序,實現(xiàn)一個登錄界面,在登錄界面中包含一個復(fù)選按鈕“記住我”,選擇時保存用戶名和密碼,否則不保存,打開登錄界面時,如果有保存的用戶名和密碼,則將保存的用戶名和密碼顯示到對應(yīng)控件中。


public?void?onClick(View v) {

// TODO?Auto-generated method stub

boolean?chk = ck.isChecked();

if(chk){

namet.setText("用戶名:"+String.valueOf(name.getText().toString()));

pwdt.setText("密碼:"+String.valueOf(pwd.getText().toString()));

new?AlertDialog.Builder(MainActivity.this)

.setMessage("登陸記住密碼 ").setPositiveButton("確認(rèn) ", null).show();

}

else{

new?AlertDialog.Builder(MainActivity.this)

.setMessage("登陸未記住密碼").setPositiveButton("確認(rèn)", null).show(); }
























[if !supportLists]4.?[endif]編寫一個程序,實現(xiàn)一個日記功能,將寫好的日記保存到文件Diary中,點(diǎn)擊瀏覽的時候查看日記內(nèi)容。


public?void?onClick(View v) {

// TODO?Auto-generated method stub

String neirong = et.getText().toString();

String dizi = "riji.text";

switch?(v.getId()) {

case?R.id.button1:

?FileOutputStream out = null;

try?{

out = context.openFileOutput(dizi, Context.MODE_PRIVATE);

out.write(neirong.getBytes("UTF-8"));

} catch?(Exception e) {

// TODO?Auto-generated catch block

e.printStackTrace();

}

finally{ ?

????????????????try?{ ?

????????????????????out.close(); ?

????????????????} catch?(Exception e) { ?

????????????????????e.printStackTrace(); ?

????????????????} ?

????????????}

break;

?????????case?R.id.button2:

?????????????FileInputStream in = null; ?

?????????????ByteArrayOutputStream bout = null; ?

?????????????byte[]buf = new?byte[1024]; ?

?????????????bout = new?ByteArrayOutputStream(); ?

?????????????int?length = 0; ?

?????????????try?{ ?

?????????????????in = context.openFileInput(dizi); //獲得輸入流 ?

?????????????????while((length=in.read(buf))!=-1){ ?

?????????????????????bout.write(buf,0,length); ?

?????????????????} ?

?????????????????byte[] content = bout.toByteArray(); ?

?????????????????tv.setText(new?String(content,"UTF-8")); //設(shè)置文本框為讀取的內(nèi)容 ?

?????????????} catch?(Exception e) { ?

?????????????????e.printStackTrace(); ?

?????????????} ?

?????????????tv.invalidate(); //刷新屏幕 ?

?????????????try{ ?

?????????????????in.close(); ?

?????????????????bout.close(); ?

?????????????} ?

?????????????catch(Exception e){} ?


break;


[if !supportLists]5.?[endif]編寫一個程序,實現(xiàn)圖片的瀏覽,向左滑動顯示下一張圖片,向右滑動顯示上一張圖片。


package com.example.img;

?

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.widget.ImageView;

?

public class MainActivity extends Activity implements OnTouchListener{

???int caozuo = 0;

???float x1 = 0;

???float x2 = 0;

???public ImageView image;

????@Override

????protected void onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_main);

????????image = (ImageView)findViewById(R.id.imageView1);

????}

?

?

????@Override

????public boolean onCreateOptionsMenu(Menu menu) {

????????// Inflate the menu; this adds items to the action bar if it is present.

????????getMenuInflater().inflate(R.menu.main, menu);

????????return true;

????}

?

?

?

?

?

?

?

@Override

public boolean onTouch(View v, MotionEvent event) {

????

if(event.getAction() == MotionEvent.ACTION_DOWN)

x1 = event.getX();

if(event.getAction() == MotionEvent.ACTION_UP){

x2 = event.getX();

if(x1-x2>=5){

caozuo =caozuo+1;

caozuo = caozuo%8;

if(caozuo==0)

{

caozuo ++;

}

image.setImageResource(R.drawable.a_1+caozuo);

}

if(x2-x1>=5){

caozuo =caozuo-1;

if(caozuo<=0){

caozuo = 7;

}

image.setImageResource(R.drawable.a_1+caozuo);

}

}

return false;

}

????

}//注意要添加照片進(jìn)入文件中



[if !supportLists]6.?[endif]編寫一個程序,通過Handler和Thread或Runnable實現(xiàn)以10秒時間顯示完進(jìn)度條進(jìn)度。


private?ProgressBar progress;

private?int?max?= 100,current?= 0,step?= 0;

????@Override

????protected?void?onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_main);

????????progress?= (ProgressBar)findViewById(R.id.progressBar3);


????????progress.setMax(max);

????????progress.setProgress(0);

????????step?= max/10;


????????new?Thread(new?Runnable() {

???????? int?i?=1;

@Override

public?void?run() {

// TODO?Auto-generated method stub

try?{

while?(max!=progress.getProgress()) {

???Log.i("次數(shù)", i?+ ""); ?

???????????????????????i++; ?

???????????????????????progress.setProgress(current?+ step); ?

???????????????????????current?= progress.getProgress(); ?

???????????????????????Thread.sleep(1000);

}

} catch?(Exception e) {

// TODO: handle exception

}}

}).start();


????}


[if !supportLists]7.?[endif]編寫一個程序,通過AsyncTask實現(xiàn)以20秒時間顯示完進(jìn)度條進(jìn)度。


package com.example.jindutiao20s;


import android.os.AsyncTask;

import android.os.Bundle;

. import android.app.Activity;. import android.view.Menu;

import android.widget.ProgressBar;

import android.widget.TextView;.

. public class MainActivity extends Activity {.

private ProgressBar myBar;

private TextView textView;

????@Override

. ????protected void onCreate(Bundle savedInstanceState) {

. ????????super.onCreate(savedInstanceState); ?????????setContentView(R.layout.activity_main);

????????myBar = (ProgressBar)findViewById(R.id.progressBar1);

???????????textView = (TextView)findViewById(R.id.textView1);

???????????MyAsync my = new MyAsync();

????????my.execute();

????}

????class MyAsync extends AsyncTask{


???? int index = 0;

???? @Override

. ???? protected void onPreExecute() {

. ???? // TODO Auto-generated method stub

???? super.onPreExecute();

. ???? textView.setText("0%");

??? }

protected Integer doInBackground(Void... params) {. ????????????

try {

for(int i =0;i<=20;i++){

Thread.sleep(1000);

index ++;

publishProgress(index);

}

. } catch (Exception e) {

// TODO: handle exception

}

return null;

}

. @Override

. protected void onProgressUpdate(Integer... values) {

// TODO Auto-generated method stub

. super.onProgressUpdate(values);

. textView.setText(values[0]*5+"%");

. myBar.setProgress(index*5);

. }

. ???? @Override

. ???? protected void onPostExecute(Integer result) {

. ???? // TODO Auto-generated method stub

. ???? super.onPostExecute(result);

. ???? }

. ????

. ????

. ????}

.

.

. ????@Override. ????public boolean onCreateOptionsMenu(Menu menu) {

????????// Inflate the menu; this adds items to the action bar if it is present.

????????getMenuInflater().inflate(R.menu.main, menu);

????????return true;. ????}


}

[if !supportLists]8.?[endif]編寫一個程序,手動綁定列表控件ListView,每條記錄中包含圖片,名稱和描述。

兩個布局布局1 ?listview布局二 對一個item進(jìn)行布局 圖片文字

三類主類調(diào)用該

package com.example.bangding;


import java.util.ArrayList;

import java.util.List;


import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.ListView;


public class MainActivity extends Activity {


private List list;

private ListView listview;

????private ?MyAdapter adapter;

????@Override

????protected void onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_main);

????????list = new ArrayList();

????????listview = (ListView)findViewById(R.id.listView1);

????????init();


????}

????private void init()

????{

????????for (int i =1;i<=10;i++)

????????{

???????? Items items = new Items();

????????????items.setImg_id(R.drawable.a_1+i);

items.setName("名字:" + i);

items.setExplain("解釋: "+ i);

????????????list.add(items);

????????????adapter = new MyAdapter(MainActivity.this,list);

????????????listview.setAdapter(adapter);


????????}

????}


????@Override

????public boolean onCreateOptionsMenu(Menu menu) {

????????// Inflate the menu; this adds items to the action bar if it is present.

????????getMenuInflater().inflate(R.menu.main, menu);

????????return true;

????}


}

Items類 聲明 ??

package?com.example.bangding;


public?class?Items {

???public?int?getImg_id() {

return?img_id;

}

public?void?setImg_id(int?img_id) {

this.img_id?= img_id;

}

public?String getExplain() {

return?explain;

}

public?void?setExplain(String explain) {

this.explain?= explain;

}

public?String getName() {

return?name;

}

public?void?setName(String name) {

this.name?= name;

}

???private?int?img_id;

???private?String name;

???private??String explain;

}


Myadapter進(jìn)行布局 ???線程

package?com.example.bangding;

import?android.content.Context;

import?android.view.LayoutInflater;

import?android.view.View;

import?android.view.ViewGroup;

import?android.widget.BaseAdapter;

import?android.widget.ImageView;

import?android.widget.TextView;

import?java.util.List;

public?class?MyAdapter extends?BaseAdapter {

????private?List list?;

????private?LayoutInflater inflater;

????public??MyAdapter(Context context,List list)

????{

????????this.list?= list;

????????inflater?= LayoutInflater.from(context);

????}

????@Override

????public?int?getCount() {

????????return?list.size();

????}


????@Override

????public?Object getItem(int?position) {

????????return?list.get(position);

????}


????@Override

????public?long?getItemId(int?position) {

????????return?position;

????}


????@Override

????public?View getView(int?position, View convertView, ViewGroup parent) {

????????View view;

????????ViewHolder holder;


????????if(convertView==null)

????????{

????????????view = inflater.inflate(R.layout.myactivity,null);

????????????holder = new?ViewHolder(view);

????????????view.setTag(holder);

????????}

????????else

????????{

????????????view = convertView;

????????????holder = (ViewHolder) view.getTag();

????????}

????????Items items = ?list.get(position);

????????holder.img.setImageResource(items.getImg_id());

????????holder.name.setText(items.getName());

????????holder.explain.setText(items.getExplain());

????????return?view;

????}

????class??ViewHolder

????{

????????private?ImageView img;

????????private?TextView name;

????????private??TextView explain;

????????public?ViewHolder(View view)

????????{

????????????img?= (ImageView)view.findViewById(R.id.imageView1);

????????????name?= (TextView)view.findViewById(R.id.textView1);

????????????explain?= (TextView)view.findViewById(R.id.textView2);

????????}

????}

}



[if !supportLists]9.?[endif]編寫一個程序,通過使用Service來實現(xiàn)簡單的播放器。

public class Myservice extends Service {

???private MediaPlayer player;

????private boolean ispaused = false;

????private ?int position =0;

????@Override

public void onCreate() {//最一開始會執(zhí)性這個方法 如果服務(wù)在啟動之中就不會啟動這個方法直接調(diào)用onStartCommand 方法

????????super.onCreate();

Log.i("TAG","開始播放");

????????player = MediaPlayer.create(this,R.raw.qiyueshang);}

public void onDestroy() {//停止服務(wù)

????????super.onDestroy();

????????if(player != null)

????????????player.stop(); ???}

public ?void Play(int pos)//播放

????{

????????if(player!=null) ??????{

????????????player.start();

Log.i("TAG","開始播放");

????????????player.seekTo(pos); ?????} ??}

public void Pause()//暫停

????{

????????if(player != null && player.isPlaying()) ??{

position = player.getCurrentPosition();//獲取播放位置

player.pause();//暫停音樂

????????????ispaused = true; ???}

????????else if(ispaused) ??{

????????????Play(position); ??}??}

public ?void Rest()//重放

{??if(player!=null)

????????????Play(0); ?}

????@Override

public int onStartCommand(Intent intent, int flags, int startId) {//開始服務(wù)

????????int flag = intent.getIntExtra("MSG",0);

????????if(flag==1)

????????{Play(0);}

????????else if(flag==2)

????????{Pause();}

????????else if(flag==3)

????????{Rest();}

????????Log.i("MSG",flag+"");

????????return super.onStartCommand(intent, flags, startId);

}

????public IBinder onBind(Intent intent) {

????????return null;

????}

}

[if !supportLists]10.?[endif]編寫一個程序,實現(xiàn)在狀態(tài)欄提示有新短消息,展開狀態(tài)欄點(diǎn)擊消息時彈出詳細(xì)信息界面。

public class NotifaicationActivity extends AppCompatActivity ?implements View.OnClickListener{

????private ?Notification notification;

????private Button send_notifiaction,stop_notification;

????private ??NotificationManager manager;

????@Override

????protected void onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_main);

????????send_notifiaction = (Button)findViewById(R.id.send_notification);

????????stop_notification = (Button)findViewById(R.id.stop_notification);

????????send_notifiaction.setOnClickListener(this);

????????stop_notification.setOnClickListener(this);

//第一步首先獲取Notification管理對象

????????manager ??= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

//第二步獲取Notification.Builder對象

????????Notification.Builder builder = new Notification.Builder(this);

//設(shè)置小圖標(biāo)

????????builder.setSmallIcon(R.mipmap.ic_launcher);

//提示音 振動 閃爍都是默認(rèn)

????????builder.setDefaults(Notification.DEFAULT_ALL);

builder.setTicker("短信");

builder.setContentTitle("有短信");

builder.setContentText("短信來了");

????????Intent intent = new Intent(this,NotifaicationActivity.class);

//生成PendingIntene對象

????????PendingIntent pendingIntent = PendingIntent.getActivity(this,1,intent,0);

//設(shè)置跳轉(zhuǎn)頁面

????????builder.setContentIntent(pendingIntent);

//獲得Notifaication對象

????????notification = builder.build();



????}


????@Override

????public void onClick(View v) {

????????switch (v.getId())

????????{

????????????case R.id.send_notification:

manager.notify(1,notification);//第一個時標(biāo)識號 第二個是對象

????????????????break;

????????????case R.id.stop_notification:

????????????????manager.cancel(1);

????????????????break;


????????}

????}

}

[if !supportLists]11.?[endif]編寫一個程序,實現(xiàn)ListView顯示好友列表信息,要求使用BaseAdapter。

public class MyAdapter extends BaseAdapter {

????private List list ;

????private LayoutInflater inflater;

????public ?MyAdapter(Context context,List list)

????{

????????this.list = list;

????????inflater = LayoutInflater.from(context);

????}

????@Override

????public int getCount() {

????????return list.size();

????}


????@Override

????public Object getItem(int position) {

????????return list.get(position);

????}


????@Override

????public long getItemId(int position) {

????????return position;

????}


????@Override

????public View getView(int position, View convertView, ViewGroup parent) {

????????View view;

????????ViewHolder holder;


????????if(convertView==null)

????????{

????????????view = inflater.inflate(R.layout.item,null);

????????????holder = new ViewHolder(view);

????????????view.setTag(holder);

????????}

????????else

????????{

????????????view = convertView;

????????????holder = (ViewHolder) view.getTag();

????????}

????????Items items = ?list.get(position);

????????holder.img.setImageResource(items.getImg_id());

????????holder.name.setText(items.getName());

????????holder.explain.setText(items.getExplain());

????????return view;

????}

????class ?ViewHolder

????{

????????private ImageView img;

????????private TextView name;

????????private ?TextView explain;

????????public ViewHolder(View view)

????????{

????????????img = (ImageView)view.findViewById(R.id.imageView);

????????????name = (TextView)view.findViewById(R.id.name);

????????????explain = (TextView)view.findViewById(R.id.explain);

????????}

????}

}


[if !supportLists]12.?[endif]編寫一個程序,實現(xiàn)點(diǎn)擊一個按鈕,打開一個新的Activity并傳遞“hello”,在新的Activity,接收傳遞過來的“hello”,將“hello”改成“hello world”,結(jié)束當(dāng)前Activity并將需要修改后的值返回并關(guān)閉當(dāng)前窗體。

public class IntentFirstActivity extends AppCompatActivity {

????private Button send;

????private EditText edit;

????@Override

????protected void onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_intent_first);

????????send = (Button)findViewById(R.id.send_message);

????????edit = (EditText)findViewById(R.id.input);

????????send.setOnClickListener(new View.OnClickListener() {

????????????@Override

????????????public void onClick(View v) {

????????????????Intent intent = new Intent(IntentFirstActivity.this,IntentSecondActivity.class);

????????????????intent.putExtra("MSG",edit.getText().toString());

????????????????startActivityForResult(intent,2);

????????????}

????????});

????}

????@Override

????protected void onActivityResult(int requestCode, int resultCode, Intent data) {

???????edit.setText(data.getStringExtra("MSG"));

Toast.makeText(this,"收到新的值了",Toast.LENGTH_SHORT).show();

????}

}



??protected void onCreate(Bundle savedInstanceState) {

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.activity_intent_second);

????????send = (Button)findViewById(R.id.transition_msg);

????????Msg = (EditText)findViewById(R.id.return_msg);

????????receive_msg = (TextView)findViewById(R.id.receive);

receive_msg.setText("收到的信息為:" + getIntent().getStringExtra("MSG"));

????????send.setOnClickListener(new View.OnClickListener() {

????????????@Override

????????????public void onClick(View v) {

????????????????Intent intent = new Intent();

????????????????intent.putExtra("MSG",Msg.getText().toString());

//將修改的結(jié)果返回給上一個intent

????????????????setResult(1,intent);

????????????????finish();

????????????}

????????});

????}

}


三、

1.實現(xiàn)個人通訊錄管理,主界面中包含添加按鈕和ListView,能實現(xiàn)通訊錄的添加和管理;所有通訊錄信息通過ListView控件顯示,長按ListView中的一項,出現(xiàn)以下功能選項:

呼叫、編輯聯(lián)系人、刪除聯(lián)系人,分別實現(xiàn)這幾個功能。

2.實現(xiàn)個人通訊錄管理,主界面中包含添加按鈕和ListView,能實現(xiàn)通訊錄的添加和管理;所有通訊錄信息通過ListView控件顯示,長按ListView中的一項,出現(xiàn)以下功能選項:

復(fù)制、瀏覽聯(lián)系人、刪除聯(lián)系人,分別實現(xiàn)這幾個功能。

3.實現(xiàn)個人備忘錄管理,主界面中包含添加按鈕和ListView,能實現(xiàn)對備忘錄的添加和管理;所有備忘錄信息通過ListView控件顯示,長按ListView中的一項,出現(xiàn)以下功能選項:

復(fù)制、編輯、刪除,分別實現(xiàn)這幾個功能。

4.實現(xiàn)個人備忘錄管理,主界面中包含添加按鈕和ListView,能實現(xiàn)對備忘錄的添加和管理;所有備忘錄信息通過ListView控件顯示,長按ListView中的一項,出現(xiàn)以下功能選項:

復(fù)制、瀏覽、刪除,分別實現(xiàn)這幾個功能。

5.實現(xiàn)學(xué)生管理,登錄界面,實現(xiàn)用戶的登錄,登錄成功后,顯示添加學(xué)生信息界面,學(xué)生信息包括學(xué)號、姓名、學(xué)院、專業(yè)和性別,輸入完成后點(diǎn)擊添加按鈕添加到數(shù)據(jù)庫中。要求:選擇學(xué)院時專業(yè)發(fā)生相應(yīng)的變化,性別采用單選按鈕。

6.實現(xiàn)收貨管理,包括以下功能:

1)用戶登錄功能;

2)貨物管理功能,長按某條記錄進(jìn)行編輯和刪除,或點(diǎn)擊全部刪除,清空所有收到的貨物列表;

3)收貨功能,貨物信息:貨物名稱、件數(shù)、運(yùn)費(fèi)、目的地、收貨人、電話等信息。

7.實現(xiàn)掛號預(yù)約系統(tǒng),包括以下功能:

1)掛號預(yù)約,包括姓名、性別、年齡、地址、所掛科室等;

2)掛號預(yù)約管理,使用ListView實現(xiàn),可刪除或重新預(yù)約。

8.個人理財系統(tǒng),包括以下功能:

1)支出錄入:日期、金額、項目

2)收入錄入:日期、金額、項目

3)支出收入列表,查詢一個時間段的收入或支出情況并匯總。

9.日記系統(tǒng),包括以下功能:

1)寫日記,包括日期、天氣、標(biāo)題、內(nèi)容等;

2)日記列表,根據(jù)條件查詢?nèi)沼?,能實現(xiàn)對日記信息的顯示,點(diǎn)擊一條日記信息,顯示日記詳細(xì)內(nèi)容,長按每條記錄,能彈出對日記信息的修改、刪除。

10.作業(yè)系統(tǒng),包括以下功能:

1)記錄作業(yè),包括日期、作業(yè)類型(語文或數(shù)學(xué)等)、作業(yè)內(nèi)容

2)顯示作業(yè)列表,點(diǎn)擊某項作業(yè),轉(zhuǎn)到作業(yè)詳細(xì)信息界面,在該界面,可設(shè)置作業(yè)已完成、未做、不會等標(biāo)識。

11.考勤系統(tǒng),包括以下功能:

1)記錄考勤,包括日期,年級,班級,總?cè)藬?shù),曠課人數(shù),請假人數(shù);

2)記錄曠課人具體信息,包括日期,年級,班級,曠課人姓名

3)顯示考勤列表

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容