導航:首頁 > 操作系統 > javaandroid對話框

javaandroid對話框

發布時間:2022-05-31 02:31:51

android notification點擊彈出對話框

我想你要的功能應該是圖中的這個吧?在API demo中有示例的。需要用到IncomingMessageInterstitial

java">{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.incoming_message_interstitial);
Buttonbutton=(Button)findViewById(R.id.notify_app);
button.setOnClickListener(newButton.OnClickListener(){
publicvoidonClick(Viewv){
switchToApp();
}
});
}
/**
*Performaswitchtotheapp.Anewactivitystackisstarted,replacing
*whateveriscurrentlyrunning,andthisactivityisfinished.
*/
voidswitchToApp(){
//.Inthissimple
//example,.
CharSequencefrom=getIntent().getCharSequenceExtra(IncomingMessageView.KEY_FROM);
CharSequencemsg=getIntent().getCharSequenceExtra(IncomingMessageView.KEY_MESSAGE);
//Buildthenewactivitystack,launchit,andfinishthisUI.
Intent[]stack=IncomingMessage.makeMessageIntentStack(this,from,msg);
startActivities(stack);
finish();
}
}

具體可以參考API demos里的IncomingMessageInterstitial.java和IncomingMessage.java

Ⅱ android中怎麼設置一個日期的自定義對話框

在用戶點擊輸入框或者輸入框獲得焦點的時候彈出來DatePickerDialog,用戶點擊設定按鈕,將日期填寫到輸入框。
下面直接上代碼:

[html] view plain print?
<EditText
android:id="@+id/Birthday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
android:inputType="none"//不顯示系統輸入鍵盤
android:layout_weight="1" >
</EditText>

[java] view plain print?
birthday = (EditText)findViewById(R.id.Birthday);
birthday.setInputType(InputType.TYPE_NULL); <span style="font-family: Arial, Helvetica, sans-serif;">//不顯示系統輸入鍵盤</span>
birthday.setOnFocusChangeListener(new View.OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){
Calendar c = Calendar.getInstance();
new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();

}
}
});

birthday.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();

}
});

Ⅲ 什麼方法是用於設置對話框要顯示的一個集合itmes信息(Android)

需要注意的兩點:
1. 在setIcon時,需要使用setTitle方法,否則icon不會顯示
2.如果同時調用setMessage 和 setItems(或者setSingleChoiceItems setMultiChoiceItems)函數會導致dialog沒有顯示內容
============================================================

AlertDialog的構造方法全部是Protected的,所以不能直接通過new一個AlertDialog來創建出一個AlertDialog。
要創建一個AlertDialog,就要用到AlertDialog.Builder中的create()方法。
使用AlertDialog.Builder創建對話框需要了解以下幾個方法:
setTitle :為對話框設置標題
setIcon :為對話框設置圖標
setMessage:為對話框設置內容
setView : 給對話框設置自定義樣式
setItems :設置對話框要顯示的一個list,一般用於顯示幾個命令
setMultiChoiceItems :用來設置對話框顯示一系列的復選框
setNeutralButton :普通按鈕
setPositiveButton :給對話框添加"Yes"按鈕
setNegativeButton :對話框添加"No"按鈕
create : 創建對話框
show :顯示對話框
一、簡單的AlertDialog
下面,創建一個簡單的ALertDialog並顯示它:

[java] package com.tianjf;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;

public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Ⅳ android studio 怎樣彈出對話框

首先,新建一個項目,新建項目的方法我在前面的經驗中已講到過,請查閱,新建一個項目然後,單擊項目的分類區 然後再項目的下拉菜單中選中「Android」菜單即可 然後項目區域會發生變化,只有兩個選項,單擊「app」, 在「app」的界面中選擇「java」選項,依次 「java」選項看到的是項目的包,此時我們已經看到了和Eclipse相似的界面,但是還要在包 再一次,我們看到了我們項目的真正的類所在的文件夾,即包名,找到自己要新建Activity的包名,右鍵單擊 在彈出的菜單中選擇「New」菜單 選擇「New」菜單後,會發現「New」菜單又下一級子菜單,然後單擊下一級子菜單的「Java Class」菜單 這是會彈出「Create New Class」對話框,輸入Activity的名字,然後點擊確定 單擊「OK」按鈕後,我們會發現。項目的包下已有我們新建的Class,即Activity了,新建好後,我們還要繼承Activity,這樣才是一個真正的Activity

Ⅳ java Android手機應用程序開發配置開發環境的問題!!剛起動eclipse總是出現一個對話框、如圖:

翻譯如下:必須要有一個jre或者jdk在運行,以使eclipse運行。搜索F:\eclipse\jre\bin\javaw.exe後沒有找到jvm(java虛擬機)。

一般這樣的問題就是因為你的java環境變數沒有設置好,在開始菜單的計算機圖標上右擊滑鼠,點擊屬性,點擊高級設置,點擊環境變數,設置JAVA_HOME為你的jdk的路徑,classpath為類文件,path為bin文件的路徑就行了,具體的上網查一下。

Ⅵ Android系統怎麼利用利用Java反射技術阻止通過按鈕關閉對話框(AlertDialog)

眾所周知,AlertDialog類用於顯示對話框。關於AlertDialog的基本用法在這里就不詳細介紹了,網上有很多,讀者可以自己搜索。那麼本文要介紹的是如何隨心所欲地控制AlertDialog。
現在我們來看看第一個需求:如果某個應用需要彈出一個對話框。當單擊「確定「按鈕時完成某些工作,如果這些工作失敗,對話框不能關閉。而當成功完成工作後,則關閉對話框。當然,無論何程度情況,單擊「取消」按鈕都會關閉對話框。
這個需求並不復雜,也並不過分(雖然我們可以自己弄個Activity來完成這個工作,也可在View上自己放按鈕,但這顯示有些大炮打蚊子了,如果對話框上只有一行文本,費這么多勁太不值了)。但使用過AlertDialog的讀者都知道,無論單擊的哪個按鈕,無論按鈕單擊事件的執行情況如何,對話框是肯定要關閉的。也就是說,用戶無法控制對話框的關閉動作。實際上,關閉對話框的動作已經在Android SDK寫死了,並且未給使用者留有任何介面。但我的座右銘是「宇宙中沒有什麼是不能控制的」。
既然要控制對放框的關閉行為,首先就得分析是哪些類、哪些代碼使這個對話框關閉的。進入AlertDialog類的源代碼。在AlertDialog中只定義了一個變數:mAlert。這個變數是AlertController類型。AlertController類是Android的內部類,在com.android.internal.app包中,無法通過普通的方式訪問。也無法在Eclipse中通過按Ctrl鍵跟蹤進源代碼。但可以直接在Android源代碼中找到AlertController.java。我們再回到AlertDialog類中。AlertDialog類實際上只是一個架子。象設置按鈕、設置標題等工作都是由AlertController類完成的。因此,AlertController類才是關鍵。
找到AlertController.java文件。打開後不要感到頭暈哦,這個文件中的代碼是很多地。不過這么多代碼對本文的主題也沒什麼用處。下面就找一下控制按鈕的代碼。
在AlertController類的開頭就會看到如下的代碼: View.OnClickListener mButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
Message m = null ;
if (v == mButtonPositive && mButtonPositiveMessage != null ) {
m = Message.obtain(mButtonPositiveMessage);
} else if (v == mButtonNegative && mButtonNegativeMessage != null ) {
m = Message.obtain(mButtonNegativeMessage);
} else if (v == mButtonNeutral && mButtonNeutralMessage != null ) {
m = Message.obtain(mButtonNeutralMessage);
}
if (m != null ) {
m.sendToTarget();
} // Post a message so we dismiss after the above handlers are executed
mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)
.sendToTarget();
}
};
從這段代碼中可以猜出來,前幾行代碼用來觸發對話框中的三個按鈕( Positive 、 Negative 和 Neutral )的單擊事件,而最後的代碼則用來關閉對話框(因為我們發現了 MSG_DISMISS_DIALOG 、猜出來的)。
mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)
.sendToTarget(); 上面的代碼並不是直接來關閉對話框的,而是通過一個 Handler 來處理,代碼如下:
private static final class ButtonHandler extends Handler {
// Button clicks have Message.what as the BUTTON{1,2,3} constant
private static final int MSG_DISMISS_DIALOG = 1 ;

private WeakReference < DialogInterface > mDialog; public ButtonHandler(DialogInterface dialog) {
mDialog = new WeakReference < DialogInterface > (dialog);
} @Override
public void handleMessage(Message msg) {
switch (msg.what) {

case DialogInterface.BUTTON_POSITIVE:
case DialogInterface.BUTTON_NEGATIVE:
case DialogInterface.BUTTON_NEUTRAL:
((DialogInterface.OnClickListener) msg.obj).onClick(mDialog.get(), msg.what);
break ;

case MSG_DISMISS_DIALOG:
((DialogInterface) msg.obj).dismiss();
}
}
}
從上面代碼的最後可以找到 ((DialogInterface) msg.obj).dismiss();。現在看了這么多源代碼,我們來總結一下對話框按鈕單擊事件的處理過程。在AlertController處理對話框按鈕時會為每一個按鈕添加一個onclick事件。而這個事件類的對象實例就是上面的mButtonHandler。在這個單擊事件中首先會通過發送消息的方式調用為按鈕設置的單擊事件(也就是通過setPositiveButton等方法的第二個參數設置的單擊事件),在觸發完按鈕的單擊事件後,會通過發送消息的方式調用dismiss方法來關閉對話框。而在AlertController類中定義了一個全局的mHandler變數。在AlertController類中通過ButtonHandler類來對象來為mHandler賦值。因此,我們只要使用我們自己Handler對象替換ButtonHandler就可以阻止調用dismiss方法來關閉對話框。下面先在自己的程序中建立一個新的ButtonHandler類(也可叫其他的名)。
class ButtonHandler extends Handler
{ private WeakReference < DialogInterface > mDialog; public ButtonHandler(DialogInterface dialog)
{
mDialog = new WeakReference < DialogInterface > (dialog);
} @Override
public void handleMessage(Message msg)
{
switch (msg.what)
{ case DialogInterface.BUTTON_POSITIVE:
case DialogInterface.BUTTON_NEGATIVE:
case DialogInterface.BUTTON_NEUTRAL:
((DialogInterface.OnClickListener) msg.obj).onClick(mDialog
.get(), msg.what);
break ;
}
}
} 我們可以看到,上面的類和AlertController中的ButtonHandler類很像,只是支掉了switch語句的最後一個case子句(用於調用dismiss方法)和相關的代碼。
下面我們就要為AlertController中的mHandler重新賦值。由於mHandler是private變數,因此,在這里需要使用Java的反射技術來為mHandler賦值。由於在AlertDialog類中的mAlert變數同樣也是private,因此,也需要使用同樣的反射技術來獲得mAlert變數。代碼如下:
先建立一個 AlertDialog 對象
AlertDialog alertDialog = new AlertDialog.Builder( this )
.setTitle( " abc " )
.setMessage( " content " )
.setIcon(R.drawable.icon)
.setPositiveButton( 「確定」,
new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,
int which)
{ }
}).setNegativeButton( " 取消 " , new OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
}).create()
上面的對話框很普通,單擊哪個按鈕都會關閉對話框。下面在調用 show 方法之前來修改一個 mHandler 變數的值, OK ,下面我們就來見證奇跡的時刻。 try
{

Field field = alertDialog1.getClass().getDeclaredField( " mAlert " );
field.setAccessible( true );
// 獲得mAlert變數的值
Object obj = field.get(alertDialog1);
field = obj.getClass().getDeclaredField( " mHandler " );
field.setAccessible( true );
// 修改mHandler變數的值,使用新的ButtonHandler類
field.set(obj, new ButtonHandler(alertDialog1));
}
catch (Exception e)
{
}
// 顯示對話框
alertDialog.show(); 我們發現,如果加上try catch語句,單擊對話框中的確定按鈕不會關閉對話框(除非在代碼中調用dismiss方法),單擊取消按鈕則會關閉對話框(因為調用了dismiss方法)。如果去了try…catch代碼段,對話框又會恢復正常了。
雖然上面的代碼已經解決了問題,但需要編寫的代碼仍然比較多,為此,我們也可採用另外一種方法來阻止關閉對話框。這種方法不需要定義任何的類。
這種方法需要用點技巧。由於系統通過調用dismiss來關閉對話框,那麼我們可以在dismiss方法上做點文章。在系統調用dismiss方法時會首先判斷對話框是否已經關閉,如果對話框已經關閉了,就會退出dismiss方法而不再繼續關閉對話框了。因此,我們可以欺騙一下系統,當調用dismiss方法時我們可以讓系統以為對話框已經關閉(雖然對話框還沒有關閉),這樣dismiss方法就失效了,這樣即使系統調用了dismiss方法也無法關閉對話框了。
下面讓我們回到AlertDialog的源代碼中,再繼續跟蹤到AlertDialog的父類Dialog的源代碼中。找到dismissDialog方法。實際上,dismiss方法是通過dismissDialog方法來關閉對話框的,dismissDialog方法的代碼如下: private void dismissDialog() {
if (mDecor == null ) {
if (Config.LOGV) Log.v(LOG_TAG,
" [Dialog] dismiss: already dismissed, ignore " );
return ;
}
if ( ! mShowing) {
if (Config.LOGV) Log.v(LOG_TAG,
" [Dialog] dismiss: not showing, ignore " );
return ;
} mWindowManager.removeView(mDecor); mDecor = null ;
mWindow.closeAllPanels();
onStop();
mShowing = false ;

sendDismissMessage();
}
該方法後面的代碼不用管它,先看 if(!mShowing){ … } 這段代碼。這個 mShowing 變數就是判斷對話框是否已關閉的。因此,我們在代碼中通過設置這個變數就可以使系統認為對話框已經關閉,就不再繼續關閉對話框了。由於 mShowing 也是 private 變數,因此,也需要反射技術來設置這個變數。我們可以在對話框按鈕的單擊事件中設置 mShowing ,代碼如下:
try
{
Field field = dialog.getClass()
.getSuperclass().getDeclaredField(
" mShowing " );
field.setAccessible( true );
// 將mShowing變數設為false,表示對話框已關閉
field.set(dialog, false );
dialog.dismiss();}
catch (Exception e)
{}
將上面的代碼加到哪個按鈕的單擊事件代碼中,哪個按鈕就再也無法關閉對話框了。如果要關閉對話框,只需再將 mShowing 設為 true 即可。要注意的是,在一個按鈕里設置了 mShowing 變數,也會影響另一個按鈕的關閉對話框功能,因此,需要在每一個按鈕的單擊事件里都設置 mShowing 變數的值。 本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/nokiaguy/archive/2010/07/27/5770263.aspx

Ⅶ JAVA的android的載入自定義對話框問題!!具體請請看圖片!

AlertDialog.Builder builder
這個變數要升級為全局變數,去掉final修飾符。因為你這個變數是在onCreate函數里聲明的,出了這個函數後就被棧回收了,內存就沒有這個變數了,但是你點擊按鈕的時候,肯定是出了onCreate函數了。而升級為全局變數後,你在onCreate函數初始化後,它一直都在,直到你退出當前Activity。
也可以在onClick(View source)函數裡面聲明這個變數,聲明方式要注意new AlertDialog.Builder構造函數所帶參數不是this了,是AlertDialog.Builder(當前類名.this)。

Ⅷ Android 的通知,對話框,警告各有什麼優缺點

在圖形界面之中,對話框也是人機交互的一種重要的形式,程序可以通過對話框對用戶進行一些信息的提示,而
用戶也可以通過對話框和程序進行一些簡單的交互操作。
在Android的開發之中,所有的對話框都是從android.app.Dialog類繼承而來的。
Alert表示的是一個警告的含義,所以AlertDialog表示是的一個警告的概念,主要的功能是產生一條警告信息。
AlertDialog是Dialog的直接子類,所有可以使用Dialog類的各個操作方法,但是這個類的構造方法全部
使用了Protected關鍵字定義,所以這個關鍵字定義的許可權特點:本類、同一包的類,不同包的子類可以
訪問,所以也就意味著AlertDialog類的構造方法被隱藏了。
如果要想創建AlertDialog對話框,那麼就必須使用AlertDialogBuilder類完成,而通過這個類的名稱
就可以清楚的發現它是一個專門用於對話框的創建類。
在main.xml中
<?xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:orientation= "horizontal" >
<TextView
android:id= "@+id/mytext"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:text= "北海銀灘" />
<Button
android:id= "@+id/mybut"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:text= "刪除" />
</LinearLayout>
在MyDialogDemo.java程序中
package com.tarena.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MyDialogDemo extends Activity {
private Button mybut = null; //定義按鈕
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //調用布局管理器
this.mybut = (Button) super.findViewById(R.id.mybut); //取得按鈕
this.mybut.setOnClickListener(new OnClickListenerImpl()); //設置事件類
}
private class OnClickListenerImpl implements OnClickListener{
public void onClick(View v) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setTitle("刪除信息?") // 創建標題
.setMessage("您確定要刪除這條信息嗎?") //表示對話框的內容
.setIcon(R.drawable.ic_launcher) //設置LOGO
.setPositiveButton("刪除", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).setNeutralButton("查看詳情", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).create(); //創建對話框
dialog.show(); //顯示對話框
}
}
}

Ⅸ android關於觸摸任何位置都可以關閉的對話框的問題

寫的怎麼這么亂,直接創建好Dialog後,調用setCanceledOnTouchOutside(true)這個方法就能實現
意思是當你觸摸屏幕其他任何位置時對話框會自動消失。

Ⅹ android 有沒有文件選擇對話框

// filename: CallbackBundle.java
package com.example.openfiledemo;

import android.os.Bundle;
// 簡單的Bundle參數回調介面
public interface CallbackBundle {
abstract void callback(Bundle bundle);
}
[java] view plain
// filename: CallbackBundle.java
package com.example.openfiledemo;

import android.os.Bundle;
// 簡單的Bundle參數回調介面
public interface CallbackBundle {
abstract void callback(Bundle bundle);
}

然後的打開文件對話框的一下封裝:

SimpleAdapter adapter = new SimpleAdapter(getContext(), list, R.layout.filedialogitem, new String[]{"img", "name", "path"}, new int[]{R.id.filedialogitem_img, R.id.filedialogitem_name, R.id.filedialogitem_path});
this.setAdapter(adapter);
return files.length;
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// 條目選擇
String pt = (String) list.get(position).get("path");
String fn = (String) list.get(position).get("name");
if(fn.equals(sRoot) || fn.equals(sParent)){
// 如果是更目錄或者上一層
File fl = new File(pt);
String ppt = fl.getParent();
if(ppt != null){
// 返回上一層
path = ppt;
}
else{
// 返回更目錄
path = sRoot;
}
}
else{
File fl = new File(pt);
if(fl.isFile()){
// 如果是文件
((Activity)getContext()).dismissDialog(this.dialogid); // 讓文件夾對話框消失

// 設置回調的返回值
Bundle bundle = new Bundle();
bundle.putString("path", pt);
bundle.putString("name", fn);
// 調用事先設置的回調函數
this.callback.callback(bundle);
return;
}
else if(fl.isDirectory()){
// 如果是文件夾
// 那麼進入選中的文件夾
path = pt;
}
}
this.refreshFileList();
}
}
}
[java] view plain
// filename: OpenFileDialog.java
package com.example.openfiledemo;
SimpleAdapter adapter = new SimpleAdapter(getContext(), list, R.layout.filedialogitem, new String[]{"img", "name", "path"}, new int[]{R.id.filedialogitem_img, R.id.filedialogitem_name, R.id.filedialogitem_path});
this.setAdapter(adapter);
return files.length;
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// 條目選擇
String pt = (String) list.get(position).get("path");
String fn = (String) list.get(position).get("name");
if(fn.equals(sRoot) || fn.equals(sParent)){
// 如果是更目錄或者上一層
File fl = new File(pt);
String ppt = fl.getParent();
if(ppt != null){
// 返回上一層
path = ppt;
}
else{
// 返回更目錄
path = sRoot;
}
}
else{
File fl = new File(pt);
if(fl.isFile()){
// 如果是文件
((Activity)getContext()).dismissDialog(this.dialogid); // 讓文件夾對話框消失

// 設置回調的返回值
Bundle bundle = new Bundle();
bundle.putString("path", pt);
bundle.putString("name", fn);
// 調用事先設置的回調函數
this.callback.callback(bundle);
return;
}
else if(fl.isDirectory()){
// 如果是文件夾
// 那麼進入選中的文件夾
path = pt;
}
}
this.refreshFileList();
}
}
}

閱讀全文

與javaandroid對話框相關的資料

熱點內容
不能修改的pdf 瀏覽:737
同城公眾源碼 瀏覽:475
一個伺服器2個埠怎麼映射 瀏覽:283
java字元串ascii碼 瀏覽:62
台灣雲伺服器怎麼租伺服器 瀏覽:462
旅遊手機網站源碼 瀏覽:317
android關聯表 瀏覽:930
安卓導航無聲音怎麼維修 瀏覽:322
app怎麼裝視頻 瀏覽:424
安卓系統下的軟體怎麼移到桌面 瀏覽:81
windows拷貝到linux 瀏覽:757
mdr軟體解壓和別人不一樣 瀏覽:889
單片機串列通信有什麼好處 瀏覽:325
游戲開發程序員書籍 瀏覽:849
pdf中圖片修改 瀏覽:275
匯編編譯後 瀏覽:480
php和java整合 瀏覽:835
js中執行php代碼 瀏覽:447
國產單片機廠商 瀏覽:62
蘋果手機怎麼設置不更新app軟體 瀏覽:289