『壹』 安卓開發如何添加開源框架到自己的項目中
是android library嗎,那就直接右鍵項目,選擇properties,然後到Android頁面,在右邊的Library裡面點add,選中項目導入。
『貳』 如何在Mac系統中創建Android應用項目
我們經常會用Mac系統創建IOS應用項目,但是如何在Mac系統中創建Android應用項目呢?下面我給大家分享一下。
Android Studio
首先我們在Mac系統中要安裝Android Studio軟體,然後點擊Start a new Android Studio project選項,如下圖所示
接下來進入項目名稱設置界面,這里需要給項目起一個名字,如下圖所示
然後需要我們選擇一下創建的Android應用運用哪個SDK,如下圖所示,我建議選擇比較穩定的版本
接下來會進入主界面樣式選擇界面,我們選擇空模板樣式即可,如下圖所示
接著給主界面文件起名字,這里默認是MainActivity,我們不需要設置,默認即可,如下圖所示
設置完以上信息以後,我們就可以看到Android Studio就會進入項目創建進度了,如下圖所示
接下來創建好項目以後,默認主界面就會顯示項目列表,如下圖所示
如果想運行項目的話我們點擊頂部的運行按鈕即可,如下圖所示
最後Android Studio就會啟動Android手機模擬器來展示我們項目的信息了,如下圖所示
『叄』 在Android項目中,怎樣添加recyclerview庫
1.添加RecyclerView Android依賴項
要將RecyclerView Selection庫添加到Android Studio項目,請implementation 在app 模塊的build.gradle 文件中提及以下依賴項:
1.implementation 'com.android.support:recyclerview-v7:28.0.0'
2.implementation 'com.android.support:recyclerview-selection:28.0.0'
2.創建一個列表
在本教程中,我們將使用一小部分項目,每個項目都包含一個人的姓名和電話號碼。
要存儲每個列表項的數據,請創建一個名為的Kotlin數據類,Person並為其添加兩個屬性:name 和phone。
1.data class Person(val name:String,
2. val phone: String)
您現在可以繼續Person 在主活動中創建對象列表。
val myList = listOf(
Person("Alice", "555-0111"),
Person("Bob", "555-0119"),
Person("Carol", "555-0141"),
Person("Dan", "555-0155"),
Person("Eric", "555-0180"),
Person("Craig", "555-0145")
)
3.將Recycler視圖添加到布局
當然,我們將使用RecyclerView 小部件來顯示列表。因此
,在主活動的布局XML文件中添加 標記。
要指定列表項的布局,請創建一個新的XML文件並將其命名為list_item.xml。在其中,添加兩個TextView 小部件:一個用於顯示名稱,另一個用於顯示電話號碼。如果使用LinearLayout 元素來定位窗口小部件,則XML文件的內容應如下所示:
4.創建一個View Holder
您可以將視圖持有者視為一個對象,其中包含對列表項布局中存在的視圖的引用。沒有它,RecyclerView 窗口小部件將無法有效地呈現列表項。
現在,您需要一個視圖持有者,它包含TextView 您在上一步中創建的兩個小部件。因此,創建一個擴展RecyclerView.ViewHolder 類的新類,並初始化對其中的小部件的引用。這是如何做:
class MyViewHolder(view: View)
: RecyclerView.ViewHolder(view) {
val name: TextView = view.list_item_name
val phone: TextView = view.list_item_phone
// More code here
}
此外,RecyclerView Selection插件需要一種可以調用以唯一標識所選列表項的方法。理想情況下,此方法屬於視圖持有者本身。此外,它必須返回ItemDetailsLookup.ItemDetails 類的實例。
『肆』 安卓怎麼自定義listview視屏
創建一個android項目並在布局文件中加入一個ListView控制項,
定義一個VO類User用於存放一些數據
新建一個列表項的內容布局,這里每一項都會有一個小圖片,兩個文本
新建一個數據適配器類MyDataAdapter繼承自ArrayAdapter並做如圖的構造器:
到網路圖片上去搜一些小圖片,放到圖中的res/drawable目錄下
要對ListView的列表顯示項目進行自定義,就要重寫適配器類的onView方法,如圖:
在主界面初始化一個用戶列表,並設置ListView的適配器為我們自定義的適配器
在genimotion模擬器裡面運行一把,效果如圖:
『伍』 華為手機app內購買項目怎麼開啟
內購買項目關閉方法:
1、首先我們打開主屏上的「設置」應用,如圖所示
6、在打開了訪問限制以後,以允許一欄下方找到「App 內購買項目」選項,點擊關閉開關就好了。
『陸』 如何在系統settings里添加設置選項
目的:在通話設置菜單下,添加一dect設置菜單,裡面再添加一checkBOxPreference
來使能硬體模塊。
-------------------------
目前做的項目,需要在系統settings裡面添加一選項來使能硬體模塊,裡面涉及到的preference知識,請網上了解,這里記錄下方法。
1,settings 應用一般在 目錄:\packages\apps\Settings,我們先找到通話設置的布局位置,看看它在那個包路徑下,進入\packages\apps\Settings\res\xml,打開settings.xml文件:
java代碼
<com.android.settings.IconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting" />
</com.android.settings.IconPreferenceScreen>
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting"
targetPackage:表示包名,根據此我們可以找到通話設置的路徑。
targetClass:表示此布局文件被那個類所引用,根據此類,我們可以知道在那個文件裡面管理我們的通話設置功能。 www.55zm.com
2.根據包名,我們可以看到在\packages\apps\Phone 目錄下,進入\res\xml目錄下
找到通話布局文件:call_feature_setting.xml,根據類名,很容易找到布局文件。
裡面內容如下:
Java代碼
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_mole_title"
android:summary="@string/dect_mole_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_mole_title"
android:summary="@string/dect_mole_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
Dect setting 就是新添加進入的設置菜單,我們的原則盡量不大量修改,所以添加一個PreferenceScreen,新增一個類文件來管理DECt菜單選項。
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings"
我們指明了包名,類名後,因這是個activity,所以我們需要到Phone目錄下修改
AndroidManifest.xml文件,指明啟動的activity的類名.
Java代碼
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_mole_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_mole_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
3.修改好後,我們必須在此activity里添加preference布局文件。
在此目錄Phone\res\xml下,新增dect_settings.xml
Java代碼
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dect_mole_title">
<CheckBoxPreference
android:key="button_dect_mole_key"
android:title="@string/dect_mole_title"
android:defaultValue="true"
android:summaryOn="@string/dect_mole_start"
android:summaryOff="@string/dect_mole_stop"
/>
</PreferenceScreen>
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dect_mole_title">
<CheckBoxPreference
android:key="button_dect_mole_key"
android:title="@string/dect_mole_title"
android:defaultValue="true"
android:summaryOn="@string/dect_mole_start"
android:summaryOff="@string/dect_mole_stop"
/>
</PreferenceScreen>
好了,總體布局已經完成
4.在\packages\apps\Phone\src\com\android\phone目錄下
新增DectSettings.java文件
載入布局文件:
//dect xml
addPreferencesFromResource(R.xml.dect_settings);
裡面涉及到的MidPhoneServce服務,是自己添加的,主要通過此服務的AIDL介面跟硬體打交道。想了解系統服務,請網上查找資料。
源碼如下:
Java代碼
package com.android.phone;
import android.content.DialogInterface;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.content.Context;
import com.android.phone.R;
import android.os.IMidPhoneService;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings;
public class DectSettings extends PreferenceActivity {
private static final String TAG = "DectSettings";
private static final String BUTTON_DECT_KEY = "button_dect_mole_key";
private CheckBoxPreference mButtonDect;
public IMidPhoneService midphoneservice = null;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
//dect xml
addPreferencesFromResource(R.xml.dect_settings);
mButtonDect = (CheckBoxPreference)findPreference(BUTTON_DECT_KEY);
mButtonDect.setPersistent(false);
if(mButtonDect != null) {
int dect_state = Settings.System.getInt(
getContentResolver(),Settings.System.DECT_SAVED_STATE, 1);
mButtonDect.setChecked( dect_state!= 0);
Settings.System.putInt(getContentResolver(),
Settings.System.DECT_SAVED_STATE,dect_state);
Log.e(TAG,"settings:------------->" + dect_state);
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference == mButtonDect ) {
int dect = mButtonDect.isChecked() ? 1 : 0;
boolean state;
if(dect == 1)
state = true;
else
state = false;
try{
midphoneservice = IMidPhoneService.Stub.asInterface(ServiceManager.getService("midphone"));
Settings.System.putInt(getContentResolver(),
Settings.System.DECT_SAVED_STATE,dect);
midphoneservice.setDectEnabled(state);
Log.e(TAG,"settings:------------->" + dect);
} catch (RemoteException e) {
e.printStackTrace();
}
return true;
}
return false;
}
@Override
protected void onResume() {
super.onResume();
if (mButtonDect != null) {
mButtonDect.setChecked(Settings.System.getInt(
getContentResolver(),