小编Gre*_*der的帖子

如何传递prepareForSegue:一个对象

我在mapview中有很多注释(带rightCalloutAccessory按钮).该按钮将执行从此mapview到a 的segue tableview.我想传递tableview一个不同的对象(保存数据),具体取决于单击了哪个标注按钮.

例如:(完全组成)

  • annotation1(奥斯汀) - >传递数据obj 1(与奥斯汀相关)
  • annotation2(达拉斯) - >传递数据obj 2(与达拉斯有关)
  • annotation3(休斯敦) - >传递数据obj 3等等......(你明白了)

我能够检测到哪个标注按钮被点击了.

我正在使用prepareForSegue:将数据obj传递到目标ViewController.由于我无法进行此调用,因此需要为我需要的数据提供额外的参数,有哪些优雅的方法可以实现相同的效果(动态数据obj)?

任何提示将不胜感激.

xcode storyboard uitableview mapkit ios

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

运行Flask服务器(Apache)几天后的MySQL OperationalError

我在Apache下有一个Flask服务器,我用它作为应用程序的Rest API,当服务器运行2-3天时它突然停止工作并加注OperationalError: MySQL Connection not available.

错误总是发生在login方法中,因为它是应用程序打开时首先调用的(但所有方法都遵循相同的模式).

这是login方法:

@app.route(LOGIN_API_URL, methods=['POST'])
def login():
    if (request.method == 'POST'):
        cursor = connection.cursor(buffered=True, dictionary=True)
        cursor.execute('select * from users where username = %s', (request.form['username'],))
        user = cursor.fetchone()
        if user is None or user['password'] != str(request.form['password']):
            abort(403)
        else:
            cursor.execute('update users set last_login = (%s) where user_id = %s', str(int(round(time.time() * 1000))), user['user_id'],)
            utils.safe_commit(connection, cursor)
            return utils.sanitize_response({'status':200, 'message':'Logged in'})
Run Code Online (Sandbox Code Playgroud)

无论safe_commitsanitize_response如下:

def sanitize_response(response, is_array=False):
    if response is …
Run Code Online (Sandbox Code Playgroud)

python mysql apache flask operationalerror

14
推荐指数
1
解决办法
570
查看次数

支持库24.2.1中锚定FloatingActionButton的错误

我从24.2.0开始就遇到过这个问题,但现在我正在使用24.2.1并且bug仍在这里,它只能很好地运行<= 24.1.1.

我有一个像这样的锚定FloatingActionButton:

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/contact_coordinator_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:context="es.cocode.baseapp.contact.ContactFragment">

        <FrameLayout
            android:id="@+id/map_fragment_container"
            android:layout_width="match_parent"
            android:layout_height="198dp"
            android:layout_marginBottom="210dp">

            <fragment
                android:id="@+id/map_fragment"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

        </FrameLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab_fullscreen_map"
            android:src="@drawable/ic_fullscreen_white_48dp"
            android:layout_width="56dp"
            android:layout_height="56dp"
            android:layout_margin="@dimen/fab_margin"
            app:layout_anchor="@id/map_fragment_container"
            app:layout_anchorGravity="bottom|end" />

    </android.support.design.widget.CoordinatorLayout>

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

它通常像这样工作:

FAB运作良好

但有时会出现错误,锚点不起作用:

FAB无法正常工作

有没有办法解决这个问题,还是应该等到这个bug得到修复并使用24.1.1代替?

android android-support-library floating-action-button android-design-library androiddesignsupport

13
推荐指数
1
解决办法
1357
查看次数

"您需要将Theme.AppCompat主题(或后代)与设计库"错误一起使用

我得到"你需要使用一个Theme.AppCompat主题(或后代)与设计库"错误每次即使我显然使用AppCompat主题(后代).

依赖关系:

compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
Run Code Online (Sandbox Code Playgroud)

布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/tooltip_container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone">

    <ImageView
        android:id="@+id/tooltip_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_delete_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_anchor="@id/tooltip_image"
        app:layout_anchorGravity="top|end"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

主题:

<style name="TranslucentAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

表现:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/TranslucentAppTheme">
        <activity android:name=".MainActivity">
            (...)
</activity>
Run Code Online (Sandbox Code Playgroud)

我正在给服务中的布局充气:

tooltipContainer = (CoordinatorLayout) LayoutInflater.from(this).inflate(R.layout.tooltip_layout, null);
Run Code Online (Sandbox Code Playgroud)

layout android styles android-appcompat

6
推荐指数
1
解决办法
4314
查看次数

重命名完整项目Android Studio

我已经根据自己和这里发现的所有内容重命名了一个项目,但它的工作原理只有一点点.

它似乎已重命名,但是当您检查设备中的应用信息或卸载它时,旧名称仍然存在.

我怎样才能完全重命名?

旧名称是WifiHome,我想将其重命名为Wifi Sentinel.

的build.gradle:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "org.grenderg.wifisentinel"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.+'
    compile 'com.android.support:gridlayout-v7:22.0.0'
    compile 'com.android.support:palette-v7:22.0.0'
    compile 'com.android.support:recyclerview-v7:22.0.0'
    compile 'com.android.support:cardview-v7:22.0.0'
    compile 'com.android.support:support-v4:22.0.0'
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.grenderg.wifisentinel" >

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> …
Run Code Online (Sandbox Code Playgroud)

android project android-studio

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

使用Python扫描主机中的每个可能端口

我正在编写一个程序,需要扫描主机中的所有65535个端口,搜索那些打开的端口.这是我到目前为止,它的工作原理,但每次执行脚本时都会产生不同的结果,为什么会这样?

def check_open_port(host, port):
    s = socket.socket()
    s.settimeout(0.1)
    # the SO_REUSEADDR flag tells the kernel to reuse a local 
    # socket in TIME_WAIT state, without waiting for its natural
    # timeout to expire.
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    try:
        code = s.connect_ex((host, port))
        s.close()

        if code == 0:
            return True
        else:
            return False
    except socket.error:
        return False


def get_open_ports(host, max_port=65535):
    open_ports = []

    def worker(port):
        if check_open_port(host, port):
            open_ports.append(port)


    pool = ThreadPoolExecutor(max_workers=10000)
    [pool.submit(worker, port) for port in range(1, max_port + …
Run Code Online (Sandbox Code Playgroud)

python ip port tcp python-multithreading

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

2
推荐指数
1
解决办法
7440
查看次数