小编Raz*_*riz的帖子

如何创建数字选择器对话框?

我希望能够创建一个允许用户从指定范围中选择一个数字的Dialog.

我知道现有的小部件(比如来自quietlycoding的那些小部件和SimonVT的小部件)已经做到了,但是我很难将这些小部件正确地集成到我的应用程序中.此外,这些主要是小部件.我想要的东西与android开发者页面教程中的东西非常相似.

我还检查了NumberPicker的文档,它说要检查TimePicker和DatePicker的示例,但它们只显示如何使用时间和日期选择器,我很难感觉到我的方式绕过代码并尝试转换时间选择器只是一个正常的数字选择器.有谁知道从哪里开始?我一直在寻找最近3个小时的解决方案无济于事.

android android-ui android-dialog numberpicker

70
推荐指数
5
解决办法
13万
查看次数

iOS 7 - viewDidLoad和viewDidAppear之间的区别

对不起,这可能不是一个编程问题本身,而是更多关于iOS生命周期功能的性质的询问.

我有一个应用程序,我有一个函数创建四个数组并通过数据库查询填充它们.首先,我从viewDidLoad函数调用函数,但是,每当加载View时,在视图实际出现之前需要花费时间(大约3-4秒).所以我做的是我创建了一个activityViewIndicator,我的viewDidLoad函数看起来像:

- (void)viewDidLoad:(BOOL)animated{
    [super viewDidLoad];

    NSLog(@"viewDidLoad Entered");
    [self.activityIndicatorView startAnimating];

    partInput.delegate = self;
    brandInput.delegate = self;
    barcodeInput.delegate = self;
    itemNameInput.delegate = self;

    //initializeArrays is the function that initializes the arrays
    [self initializeArrays];

    [self.activityIndicatorView stopAnimating];

}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为viewDidLoad当应用程序仍在上一个视图中时会触发该功能.视图仅在viewDidLoad完成后才会显示.所以我做的是将数组初始化移动到我的viewDidAppear函数,看起来像:

- (void)viewDidAppear:(BOOL)animated{
    NSLog(@"viewDidAppear loaded successfully");
    [self.activityIndicatorView startAnimating];

    partInput.delegate = self;
    brandInput.delegate = self;
    barcodeInput.delegate = self;
    itemNameInput.delegate = self;

    [self initializeArrays];

    [self.activityIndicatorView stopAnimating];

}
Run Code Online (Sandbox Code Playgroud)

但是,当我部署它时,没有任何延迟,使activityIndi​​catorView无用.

我的问题是,为什么在我看来,viewDidLoad和之间存在"性能差异" viewDidAppear

objective-c ios

43
推荐指数
1
解决办法
5万
查看次数

iOS - 如何使用私有/第三方库以SSID和密码的形式以编程方式连接到WiFi网络

我正在尝试复制我对iOS所做的现有Android应用程序.在我的应用程序中,我应该能够在给定SSID和密码的情况下连接到WiFi网络.SSID和密码可以是硬编码的或者可以由用户输入.我正在通过互联网研究如何在iOS上完成这项工作,但是,似乎这种行为非常气馁,并且没有办法使用公共/文档库来实现这一点,这些库不会让您的应用程序被拒绝App Store.

问题是我将亲自使用这个应用程序,我不打算将它提交到App Store,所以如果我使用外部库也没关系.如果我的朋友想要使用它,我可以导出企业ipa并给他们如何安装它的说明.

在搜索时,似乎MobileWifi.framework是一个很好的候选人.但是,在使用SSID和密码的情况下,似乎并没有使用此库连接到WiFi网络的简单方法.

有没有人在SSID和密码的情况下成功尝试连接到Wifi网络?

wifi ios

38
推荐指数
6
解决办法
6万
查看次数

Android Studio - 如何添加屏幕尺寸定义

美好的一天,我正在使用Android Studio构建Android应用程序.

我希望我的布局尽可能精确,但是,似乎我们可以渲染布局的Android虚拟设备列表仅限于Nexus设备,如下面的屏幕截图所示:

设备列表

并且Generic Phones and Tablets没有太多的屏幕尺寸和分辨率,所以我决定添加我的设备定义:

我的设备

但是,它没有出现在Android Studio可以在布局Design视图中渲染布局的设备中.

任何人都可以帮我解决我的问题吗?谢谢.

编辑

好的,抱歉,重启Android Studio后,新创建的AVD(三星Galaxy Note 1)现在出现在我的设备列表中,我可以在查看布局时预览渲染.

我认为我所要做的就是重新启动Android Studio才能显示.

它现在有效.

android-studio

16
推荐指数
1
解决办法
5138
查看次数

C++读取WAV文件的数据部分

我计划创建一个可视化.wav文件音频波形的程序.

到目前为止,我已经开始正确阅读所述wav文件的标题部分.我使用的代码是这样的:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;
using std::string;
using std::fstream;

typedef struct  WAV_HEADER{
    char                RIFF[4];        // RIFF Header      Magic header
    unsigned long       ChunkSize;      // RIFF Chunk Size  
    char                WAVE[4];        // WAVE Header      
    char                fmt[4];         // FMT header       
    unsigned long       Subchunk1Size;  // Size of the fmt chunk                                
    unsigned short      AudioFormat;    // Audio format 1=PCM,6=mulaw,7=alaw, 257=IBM Mu-Law, 258=IBM A-Law, 259=ADPCM 
    unsigned short      NumOfChan;      // Number of channels 1=Mono 2=Sterio                   
    unsigned long       SamplesPerSec;  // Sampling Frequency in Hz …
Run Code Online (Sandbox Code Playgroud)

c++ wav

15
推荐指数
2
解决办法
5万
查看次数

Android - 正确执行自定义对话框中的自定义列表视图

我有一个应用程序,我想在android中的自定义对话框中显示一个自定义列表视图,其中包含两个textView.到目前为止,我很难弄清楚如何连接两者并生成对话框的内容.

我试图按照自定义listView教程,希望只是设置对话适配器,但无济于事.

到目前为止,这是我到目前为止:

这是list_row_dialog.xml,包含两个textviews的行的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="50dp"
    android:orientation="horizontal"
    android:padding="5dip" >

<TextView
    android:id="@+id/unit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textStyle="bold"
    android:typeface="sans" />

<TextView
    android:id="@+id/quantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:textColor="#343434"
    android:textSize="12sp" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这里是dialog_main.xml文件,我希望对话框使用的布局文件,它基本上是一个listView.

<?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="vertical" >

<ListView
    android:id="@+id/custom_list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="1dp" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这里是CustomListAdapterDialog.java,我不确定我是否需要使用它来显示对话框中的数据:

public class CustomListAdapterDialog extends BaseAdapter {

private ArrayList<ItemClass> listData;

private LayoutInflater layoutInflater;

public CustomListAdapterDialog(Context context, ArrayList<ItemClass> listData) {
    this.listData = listData;
    layoutInflater = LayoutInflater.from(context);
}

@Override
public int getCount() { …
Run Code Online (Sandbox Code Playgroud)

android listview dialog

11
推荐指数
1
解决办法
3万
查看次数

Android - 从SharedPreferences设置和获取StringSet?

美好的一天,我正在构建一个Android应用程序.我想在首选项中存储一组字符串,以便根据其登录信息跟踪谁使用了该应用程序.

我不想使用数据库,因此我知道我应该使用SharedPreferences来存储登录的人员列表.我希望能够重置此列表,以便将单独的数据记录为字符串而不是StringSets不是一种选择.使用单独的字符串意味着我必须保留这些字符串的另一个列表,以便我可以在需要时清理它们.StringSet更易于维护.

这是我到目前为止所做的:

    //this is my preferences variable
    SharedPreferences prefs = getSharedPreferences("packageName", MODE_PRIVATE);

    //I create a StringSet then add elements to it
    Set<String> set = new HashSet<String>();

    set.add("test 1");
    set.add("test 2");
    set.add("test 3");

    //I edit the prefs and add my string set and label it as "List"
    prefs.edit().putStringSet("List", set);

    //I commit the edit I made
    prefs.edit().commit();

    //I create another Set, then I fetch List from my prefs file
    Set<String> fetch = prefs.getStringSet("List", null);

    //I then convert it to an Array …
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

9
推荐指数
1
解决办法
1万
查看次数

Android - 通过Intent拍摄照片并使用自定义名称将其保存到自定义目的地

我有一个程序通过Intent打开相机拍照.那部分工作已经很好了.但是,我希望它保存到具有特定文件名的某个文件夹(文件名是可选的,但它确实非常有帮助).

所以这就是我到目前为止所拥有的.

这是打开相机的代码行:

//TODO camera stuff.
Intent openCam = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

//The two lines of code below were commented out at first.
//They were eventually added when I tried to save it with a custom name and destination
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
openCam.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

startActivityForResult(openCam, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

结果处理程序在这里:

//TODO handle result
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
   if (resultCode == RESULT_OK) {
         // Image captured and saved to fileUri …
Run Code Online (Sandbox Code Playgroud)

camera android android-sdcard android-camera-intent

8
推荐指数
2
解决办法
6万
查看次数

Android BLE - 一次连接多个设备

我正在开发一个连接到BLE设备并读取Gatt服务和Gatt特性的Android应用程序.我使用Android开发站点的BluetoothLeGatt示例项目作为参考.

到目前为止,我能够以编程方式连接到设备(我注意到我的设备地址能够执行此操作)并通过记录UUID过滤掉我想要读取的特定Gatt服务以及服务的特定特征服务和特征.当我的BLE设备向我的Android应用程序发送消息时,Google提供的示例也会更新.总的来说,我没有遇到任何问题.

但是,在GATT上进一步阅读后,我发现可以使用单个Android应用程序(作为主OR客户端 - 连接到多个BLE设备(所有从属设备或服务器 - 发送数据的设备))接收所述数据).所以我试图做的是拥有2个BLE设备(不同的地址),记下他们的地址,然后我的应用程序尝试连接到它们,一旦应用程序看到这两个地址启动并运行.

在代码中,当我看到我的2个BLE设备时,我会调用此函数:

private void connectToDevice(){

    mDeviceName = deviceList.get(currentIndex).getName();
    mDeviceAddress = deviceList.get(currentIndex).getAddress();

    Log.e(TAG, "connecting to device name = " + mDeviceName);

    mBluetoothLeService.connect(mDeviceAddress);
}
Run Code Online (Sandbox Code Playgroud)

currentIndex最初设置为零.然后,一旦我成功连接,我会:

private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
            Log.e(TAG, "connected");
            mConnected = true;

            if(currentIndex < deviceList.size()-1) currentIndex ++;
            connectToDevice();

        } 
    }
};
Run Code Online (Sandbox Code Playgroud)

在哪里检查我是否仍然有设备连接到我的deviceList,如果是这样,增加我的计数器,然后连接,直到我耗尽我的列表中的所有内容.

但是,我似乎完全没有使用这种方法.

请注意,我的设备之间无法切换连接(循环).当我拥有大量设备时,这将是一个问题,重要的是让他们的消息实时无延迟.这就是说,我必须有一个与我的设备的实时连接.

有没有人试图连接到Android中的多个BLE设备?我不确定如何继续这个.

android bluetooth-lowenergy gatt

7
推荐指数
1
解决办法
1万
查看次数

为什么我们没有一个文件来打开Android Studio项目?

为什么我们的Android Studio项目没有类似于.xcodeproj(对于XCode应用程序)或.xds(对于Sencha Architect Projects)的文件?

我很确定你们这里的很多人都经历过尝试导入你在网上看到的项目的挫败感,以便更好地分开并了解它是如何工作的.我知道我们应该导入使用Eclipse和使用Android Studio构建的Open Android项目构建的Android项目.

但是,为什么我们必须经历File -> Open ->然后选择我们想要打开的Android Studio应用程序的目录?事实上,Android Studio似乎并不知道它是一个Android Studio项目,直到它试图打开并构建它.在下面的截图中,我有ARToolKit的示例Android Studio项目,但我只导入了其中两个.

截图

正如您所看到的,只有我导入的"可以被视为Android Studio项目",因为它们表示他们拥有Android Studio徽标而不是文件夹.

对于那些刚开始在Android Studio中开发并且他们尝试使用现有项目(从Eclipse或Android Studio构建)的人来说,这可能是一个问题,他们只是尝试导入项目以供参考而遇到麻烦.他们可能不知道他们应该导入文件夹而不是projectname/src子文件夹.如果开放/导入项目在某种程度上不精简,它会增加Android开发的"陡峭学习曲线".

总之,我的问题是:

为什么我们没有一个我们可以打开的文件,而这个文件又可以打开Android Studio并导入并构建项目(如果它尚未构建)?

android android-studio

7
推荐指数
1
解决办法
624
查看次数