導航:首頁 > 操作系統 > android訪問控制項

android訪問控制項

發布時間:2023-10-31 22:55:43

1. 如何查看android studio 中的控制項

可以通過將 WebBrowser (WebView)控制項託管在應用程序中並使用其 Source 屬性或 Navigate(Uri) 方法更改該控制項的位置來實現該操作。 警告: 默認情況下,腳本在 WebBrowser 控制項中處於禁用狀態。如果您想在控制項中啟用腳本,請將 IsScriptEnabled 屬性設置為 true。 以下代碼示例顯示如何從 ", UriKind", UriKind.Absolute); 或者,也可以使用 WebBrowser(WebView)類的 Navigate(Uri) 方法來實現該目標: Wp8: webBrowser1.Navigate(new Uri("", UriKind.Absolute)); Win8: webView.Navigate(new Uri("", UriKind.Absolute)); 如果您選擇調用方法而不是設置屬性,那麼請記住,如果WebBrowser控制項尚不在可視化樹中,則會引發 InvalidOperationException。為了避免這個問題,您可以向 Loaded 事件附加一個處理程序,以確保在調用該方法之前此控制項位於可視化樹中。 .Loaded += (object sender, RoutedEventArgs e) => { webBrowser1.Navigate(new Uri("", UriKind.Absolute)); };webView1.Loaded += (object sender, RoutedEventArgs e) => { webView1.Navigate(new Uri("", UriKind.Absolute)); }; 2. 顯示靜態 Web 內容 您可以使用 WebBrowser (WebView)控制項在應用程序中顯示已設置格式的靜態內容。例如,開發人員可能希望在應用程序包中包含幫助文本,以便用戶可以隨時訪問。或者,您也可以使用 WebBrowser (WebView)控制項顯示應用程序已使用 SaveToString() 方法保存到獨立存儲的靜態 Web 內容。 向項目中添加靜態內容 向項目中添加靜態內容的步驟 1. 使用以下 HTML 代碼創建一個名為 readme.htm 的 HTML 文件: Sample Readme Content 2. 在 Visual Studio 中打開一個新的或現有的解決方案。 3. 在「解決方案資源管理器」中,右鍵單擊您項目的名稱,單擊「添加」,然後單擊「現有項」。 4. 導航到 readme.htm 文件的位置,選擇該文件,然後單擊「添加」。 5. 在「解決方案資源瀏覽器」中,單擊該文件的名稱。確認「屬性」窗口中的「生成操作」部分。 添加命名空間 在頁面後台代碼中添加以下資源以包含以下命名空間。例如,如果您對主頁使用默認命名約定,則應更新 MainPage.xaml.cs。 using System.IO.IsolatedStorage; using System.IO; using System.Windows.Resources; 添加 WebBrowser(WebView)控制項 可以使用工具添加 WebBrowser (WebView)控制項,也可以手動添加 WebBrowser (WebView)控制項。 使用工具添加 WebBrowser(WebView)控制項 使用工具添加 WebBrowser (WebView)控制項的步驟 1. 在 Visual Studio 中打開一個新的或現有的解決方案。 2. 查看項目的 XAML 文件時,單擊「工具箱」,將 WebBrowser (WebView)控制項拖動到設備的圖像中。 手動添加 WebBrowser(WebView)控制項 在 XAML 中創建 WebBrowser (WebView)控制項的步驟 1. 打開將在其中添加 WebBrowser (WebView)控制項的頁面的 XAML 文件。在「解決方案資源瀏覽器」中,右鍵單擊該頁面的 .xaml 文件(默認情況下,新應用程序的主頁名為「MainPage.xaml」),然後選擇「打開」。 2. 在 ContentGrid 中添加一個 WebBrowser (WebView)控制項。例如: Wp8: Win8: 添加向獨立存儲中添加文件的代碼 修改頁面後台代碼以包含以下兩個函數,這兩個函數將幫助向獨立存儲中添加靜態文件。例如,如果您對主頁使用默認命名約定,則應更新 MainPage.xaml.cs。 private void SaveFilesToIsoStore() { //These files must match what is included in the application package, //or BinaryStream.Dispose below will throw an exception. string[] files = { "readme.htm" }; IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication(); if (false == isoStore.FileExists(files[0])) { foreach (string f in files) { StreamResourceInfo sr = Application.GetResourceStream(new Uri(f, UriKind.Relative)); using (BinaryReader br = new BinaryReader(sr.Stream)) { byte[] data = br.ReadBytes((int)sr.Stream.Length); SaveToIsoStore(f, data); } } } } private void SaveToIsoStore(string fileName, byte[] data) { string strBaseDir = string.Empty; string delimStr = "/"; char[] delimiter = delimStr.ToCharArray(); string[] dirsPath = fileName.Split(delimiter); //Get the IsoStore. IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication(); //Re-create the directory structure. for (int i = 0; i < dirsPath.Length - 1; i++) { strBaseDir = System.IO.Path.Combine(strBaseDir, dirsPath[i]); isoStore.CreateDirectory(strBaseDir); } //Remove the existing file. if (isoStore.FileExists(fileName)) { isoStore.DeleteFile(fileName); } //Write the file. using (BinaryWriter bw = new BinaryWriter(isoStore.CreateFile(fileName))) { bw.Write(data); bw.Close(); } }

2. android開發 include時如何獲取內部控制項

android開發include獲取內部控制項代碼:
sublayout.xml

<?xml version="段租1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#505050"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SubLayout"
/>
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" A Button "
/>
</LinearLayout>

mail.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<include android:id="@+id/main1" layout="@layout/sublayout" />
<include android:id="@+id/main2" layout="@layout/sublayout" />
<Button
android:id="@+id/startanotheractivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Start Another Activity "
/>
</LinearLayout>

Android是一種基於皮灶Linux的自由及開放源代碼的操作系統,主要使用於移動設備,如智能手機和平板電腦,燃燃扮由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。

3. android 怎麼在基類里操作控制項

我們另外寫一個Activity的基類BaseActivity,這個類也是繼承自FinalActivity,而且在這個基類裡面我們可以實現一些公共的方法,這樣其他的Activity繼承自我們這個BaseActivity基類,既可以使用FinalActivity裡面封裝好的方法,也可以使用我們在BaseActivity裡面擴展的一些公共的方法。如果我們再抽象一層的話,我們可以把這些公共的方法抽象到一個介面裡面,然後我們的BaseActivity實現這個介面,這樣也可以實現程序的擴展。

下面貼一些我整理的一些代碼

首先是抽象出來的一個Activity的介面

/**
* Activity的支持類介面,主要定義了Activity中常用的功能
*
* @Package com.example.myallutils
*
* TODO
* @author ZhaoKaiQiang
*
* @time 2014年5月7日
*/
public interface IBaseActivity {
/**
* 獲取Application對象
*
* @return
*/
public abstract Application getApplication();

/**
* 開啟服務
*/
public abstract void startService();

/**
* 停止服務
*/
public abstract void stopService();

/**
* 判斷是否有網路連接,若沒有,則彈出網路設置對話框,返回false
*
* @return
*/
public abstract boolean validateInternet();

/**
*
* 判斷是否有網路連接,沒有返回false
*
*/
public abstract boolean hasInternetConnected();

/**
* 退出應用
*/
public abstract void isExit();

/**
* 判斷GPS是否已經開啟.
*
* @return
*/
public abstract boolean hasLocationGPS();

/**
* 判斷基站是否已經開啟.
*/
public abstract boolean hasLocationNetWork();

/**
* 檢查內存卡.
*/
public abstract void checkMemoryCard();

/**
* 獲取進度條.
*
* @return
*/
public abstract ProgressDialog getProgressDialog();

/**
* 返回當前Activity上下文.
*/
public abstract Context getContext();

/**
* 獲取當前登錄用戶的SharedPreferences配置.
*/
public SharedPreferences getLoginUserSharedPre();

/**
* 用戶是否在線(當前網路是否重連成功)
*/
public boolean getUserOnlineState();

/**
* 設置用戶在線狀態 true 在線 false 不在線
*
* @param isOnline
*/
public void setUserOnlineState(boolean isOnline);

/**
*
* 發出Notification的method.
*
* @param iconId
* 圖標
* @param contentTitle
* 標題
* @param contentText
* 內容
* @param activity
*/
public void PushNotification(int iconId, String contentTitle,
String contentText, Class<?> activity, String from);
}

下面是對這個介面的實現,是所有Activity的基類

/**
* Activity的基類,實現了IActivitySupport介面
*
* @Package com.example.myallutils
*
* TODO
* @author ZhaoKaiQiang
*
* @time 2014年5月7日
*/
public abstract class BaseActivity extends FinalActivity implements
IBaseActivity {

protected Context mContext = null;
protected SharedPreferences preferences;
protected MyApplication myApplication;
protected ProgressDialog pg = null;
protected NotificationManager notificationManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
preferences = getSharedPreferences("TAG", 0);
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
pg = new ProgressDialog(mContext);
myApplication = (MyApplication) getApplication();

}

/**
* 初始化頁面布局
*/
abstract void iniView();

@Override
protected void onStart() {
super.onStart();
}

@Override
protected void onResume() {
super.onResume();
}

@Override
protected void onPause() {
super.onPause();
}

@Override
protected void onStop() {
super.onStop();
}

@Override
public void onDestroy() {
super.onDestroy();
}

@Override
public ProgressDialog getProgressDialog() {
return pg;
}

/**
* 在這里開啟所有需要開啟的服務
*/
@Override
public void startService() {

}

/**
* 在這里關閉所有需要開啟的服務
*/
@Override
public void stopService() {

}

/**
* 停止服務並結束所有的Activity退出應用
*/
@Override
public void isExit() {
new AlertDialog.Builder(mContext).setTitle("確定退出嗎?")
.setNeutralButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
stopService();
myApplication.exit();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
}

/**
* 判斷是否有網路連接,沒有返回false
*/
@Override
public boolean hasInternetConnected() {
ConnectivityManager manager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager != null) {
NetworkInfo network = manager.getActiveNetworkInfo();
if (network != null && network.isConnectedOrConnecting()) {
return true;
}
}
return false;
}

/**
* 判斷是否有網路連接,若沒有,則彈出網路設置對話框,返回false
*/
@Override
public boolean validateInternet() {
ConnectivityManager manager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager == null) {
openWirelessSet();
return false;
} else {
NetworkInfo[] info = manager.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
openWirelessSet();
return false;
}

/**
* 判斷GPS定位服務是否開啟
*/
@Override
public boolean hasLocationGPS() {
LocationManager manager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
if (manager
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
return true;
} else {
return false;
}
}

/**
* 判斷基站定位是否開啟
*/
@Override
public boolean hasLocationNetWork() {
LocationManager manager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
if (manager
.isProviderEnabled(android.location.LocationManager.NETWORK_PROVIDER)) {
return true;
} else {
return false;
}
}

/**
* 檢查內存卡可讀
*/
@Override
public void checkMemoryCard() {
if (!Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
new AlertDialog.Builder(mContext)
.setTitle("檢測內存卡")
.setMessage("請檢查內存卡")
.setPositiveButton("設置",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
Intent intent = new Intent(
Settings.ACTION_SETTINGS);
mContext.startActivity(intent);
}
})
.setNegativeButton("退出",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();

}
}).create().show();
}
}

/**
* 打開網路設置對話框
*/
public void openWirelessSet() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
dialogBuilder
.setTitle("網路設置")
.setMessage("檢查網路")
.setPositiveButton("網路設置",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
Intent intent = new Intent(
Settings.ACTION_WIRELESS_SETTINGS);
mContext.startActivity(intent);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
dialogBuilder.show();
}

/**
* 關閉鍵盤
*/
public void closeInput() {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null && this.getCurrentFocus() != null) {
inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}

/**
*
* 發出Notification
*
* @param iconId
* 圖標
* @param contentTitle
* 標題
* @param contentText
* 你內容
* @param activity
*/
@SuppressWarnings("deprecation")
public void PushNotification(int iconId, String contentTitle,
String contentText, Class<?> activity, String to) {

// 創建新的Intent,作為點擊Notification留言條時, 會運行的Activity
Intent notifyIntent = new Intent(this, activity);
notifyIntent.putExtra("to", to);
// 創建PendingIntent作為設置遞延運行的Activity
PendingIntent appIntent = PendingIntent.getActivity(mContext, 0,
notifyIntent, 0);
/* 創建Notication,並設置相關參數 */
Notification myNoti = new Notification();
// 點擊自動消失
myNoti.flags = Notification.FLAG_AUTO_CANCEL;
/* 設置statusbar顯示的icon */
myNoti.icon = iconId;
/* 設置statusbar顯示的文字信息 */
myNoti.tickerText = contentTitle;
/* 設置notification發生時同時發出默認聲音 */
myNoti.defaults = Notification.DEFAULT_SOUND;
/* 設置Notification留言條的參數 */
myNoti.setLatestEventInfo(mContext, contentTitle, contentText,
appIntent);
/* 送出Notification */
notificationManager.notify(0, myNoti);
}

/**
* 返回上下文對象
*/
@Override
public Context getContext() {
return mContext;
}

/**
* 返回登錄用戶的SharedPreferences對象
*/
@Override
public SharedPreferences getLoginUserSharedPre() {
return preferences;
}

/**
* 獲取用戶在線狀態
*/
@Override
public boolean getUserOnlineState() {
return false;
}

/**
* 設置用戶在線狀態
*/
@Override
public void setUserOnlineState(boolean isOnline) {

}

}

4. android 一個layout中有很多個子控制項,怎麼去獲得其中的一個控制項

一個layout就是一個容器,你可以放一些子控制項,當你要操作子控制項的時候,你就需要找對應的子控制項,再去操作它(操作比如設置字體,顏色,樣式等)。
可以通過findViewById()方法 來獲取,前提是,你的子控制項需要定義一個id,然後在通過該方法來尋找並操作它。

還可以通過findViewWithTag()方法來找到子控制項(前提是你第一次找到這個子控制項時,並設置一個tag),該方法一般用在activity調用adapter裡面填充布局裡面的子控制項。

5. android 怎麼在布局裡面獲取控制項

layout為布局,布局裡面可以放任何空間,獲取空間可以用findViewById方法獲取

android 獲取某個布局控制項 添加到另一個布局中

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

LinearLayout relativeLayout = (LinearLayout) findViewById(R.id.layout456);
ImageView imgApple2 = new ImageView(this);
imgApple2.setImageResource(R.drawable.ic_launcher);
relativeLayout.addView(imgApple2);

LayoutInflater factorys = LayoutInflater.from(MainActivity.this);
final View textEntryView = factorys.inflate(R.layout.layout1, null);

// LinearLayout linearLayout = (LinearLayout) textEntryView
// .findViewById(R.id.layout1);
// relativeLayout.addView(linearLayout);
EditText editText1 = (EditText) textEntryView
.findViewById(R.id.editText1);

relativeLayout.addView(editText1);

6. android怎麼獲取 中的控制項

在實際開發中LayoutInflater這個類還是非常有用的,它的作用類似於findViewById()。不同點是LayoutInflater是用來找res/layout/下的xml布局文件代碼塊,並且實例化;而findViewById()是找xml布局文件下的具體widget控制項(如Button、TextView等)。 具體作用:
1、對於一個沒有被載入或者想要動態載入的界面,都需要使用LayoutInflater.inflate()來載入;
2、對於一個已經載入的界面,就可以使用Activiyt.findViewById()方法來獲得其中的界面元素。
LayoutInflater 是一個抽象類,在文檔中如下聲明:
public abstract class LayoutInflater extends Object
獲得 LayoutInflater 實例的三種方式:
1.LayoutInflater inflater = getLayoutInflater(); //調用Activity的getLayoutInflater()
2.LayoutInflater localinflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
1. LayoutInflater inflater = LayoutInflater.from(context);
其實,這三種方式本質是相同的,從源碼中可以看出:
getLayoutInflater():
Activity 的 getLayoutInflater() 方法是調用 PhoneWindow 的getLayoutInflater()方法,看一下該源代碼:
public PhoneWindow(Context context) {
super(context);
mLayoutInflater = LayoutInflater.from(context);
}
可以看出它其實是調用 LayoutInflater.from(context)。
LayoutInflater.from(context):
public static LayoutInflater from(Context context) {
LayoutInflater LayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (LayoutInflater ==null) {
throw new AssertionError("LayoutInflater not found.");
}
return LayoutInflater;
}
可以看出它其實調用 context.getSystemService()。
結論:所以這三種方式最終本質是都是調用的Context.getSystemService()。
inflate 方法 通過 sdk 的 api 文檔,可以知道該方法有以下幾種過載形式,返回值均是 View 對象,如下:
public View inflate (int resource, ViewGroup root);
3 public View inflate (XmlPullParser parser, ViewGroup root);
4 public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot);
5 public View inflate (int resource, ViewGroup root, boolean attachToRoot);
6
7 LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
8 View view = inflater.inflate(R.layout.custom, (ViewGroup)findViewById(R.id.test));
9 //EditText editText = (EditText)findViewById(R.id.content);
10 // error
EditText editText = (EditText)view.findViewById(R.id.content);
對於上面代碼,指定了第二個參數 ViewGroup root,當然你也可以設置為 null 值。
注意:
·inflate方法與 findViewById 方法不同;
·inflater 是用來找 res/layout下的 xml 布局文件,並且實例化;
·findViewById() 是找具體 xml 布局文件中的具體 widget 控制項(如:Button、TextView 等)。

閱讀全文

與android訪問控制項相關的資料

熱點內容
app如何認定許可權 瀏覽:849
兩個復數相除的角度計演算法則 瀏覽:584
電商類app開發怎麼收費 瀏覽:300
打造電子書反編譯工具 瀏覽:74
壓縮比115 瀏覽:558
pdf怎麼摳圖 瀏覽:864
霍妮pdf 瀏覽:808
反編譯VMP 瀏覽:46
hello編譯器 瀏覽:771
apk程序加密 瀏覽:595
如何給app重命名 瀏覽:603
怎麼幽默調侃程序員 瀏覽:285
忘記密碼解壓視頻 瀏覽:911
運城機場春運加密 瀏覽:287
安卓手機如何關閉app後台 瀏覽:154
安卓數字密碼忘記怎麼破解 瀏覽:252
pythonzmq模式 瀏覽:182
linux運行php網站 瀏覽:866
實驗室無油壓縮機 瀏覽:807
哪裡可以免費看動畫app 瀏覽:54