小编Kos*_*rak的帖子

使用API​​密钥保护我的API

我正在构建自己的API,正在使用它:

1)Android App 2)桌面应用程序

我的一个网址是:http://api.chatapp.info/order_api/files/getbeers.php,我的用户通过JSON从我的数据库中获取数据.我最近想到用API Key创建身份验证.

关于如何做的任何想法?或者我必须做一些像http://api.chatapp.info/order_api/files/getbeers.php?api_key=这样的事情,然后将GET方法与存储在我数据库中的一些密钥进行比较?

有任何想法吗?

api authorization

12
推荐指数
1
解决办法
1565
查看次数

在循环中执行网络呼叫后,同一项目被删除两次

我面临一个奇怪的问题.我正在尝试从中删除所选项目mysql database.虽然查询的所有内容都是正确的,但我测试了查询并且它可以工作,但它不会从数据库中删除项目.

代码:

private class DeleteData extends AsyncTask<String, Void, List<CartList>> {

@Override
protected void onPreExecute() {
    super.onPreExecute();
    progressDialog = new ProgressDialog(CartActivity.this);
    progressDialog.setMessage(getString(R.string.get_stocks));
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
    progressDialog.show();
}

@Override
protected List<CartList> doInBackground(String... params) {
    nameValuePairs = new ArrayList<>();
    cartItems = new ArrayList<>();
    try {
        url = new URL(params[0]);
        httpURLConnection = (HttpURLConnection) url.openConnection();
        httpURLConnection.setReadTimeout(10000);
        httpURLConnection.setConnectTimeout(15000);
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setDoInput(true);
        httpURLConnection.setDoOutput(true);
        deleteDataInDB();
        outputStream = httpURLConnection.getOutputStream();
        bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
        bufferedWriter.write(StringGenerator.queryResults(nameValuePairs));
        bufferedWriter.flush();
        bufferedWriter.close();
        outputStream.close();
        httpURLConnection.connect();
        inputStream = new BufferedInputStream(httpURLConnection.getInputStream());
        jsonResult = StringGenerator.inputStreamToString(inputStream, CartActivity.this); …
Run Code Online (Sandbox Code Playgroud)

php mysql android android-asynctask

10
推荐指数
1
解决办法
259
查看次数

错误:IllegalArgumentException:此组件上的样式要求您的应用程序主题为Theme.MaterialComponents

以下是我的依赖

implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
Run Code Online (Sandbox Code Playgroud)

我的layout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:fitsSystemWindows="true">


    <com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bottomBar"
        style="@style/Widget.MaterialComponents.BottomAppBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:backgroundTint="@color/colorPrimary"
        app:fabAlignmentMode="center"
        app:fabCradleMargin="10dp"
        app:fabCradleVerticalOffset="4dp"
        app:navigationIcon="@drawable/ic_drawer" >

    </com.google.android.material.bottomappbar.BottomAppBar>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_anchor="@id/bottomBar"
        app:srcCompat="@drawable/ic_apps" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

上面的代码对我来说很好

但是,当我更新dependenciesmaterial design

implementation 'com.google.android.material:material:1.1.0-alpha01'
Run Code Online (Sandbox Code Playgroud)

我遇到以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{neel.com.bottomappbar/neel.com.bottomappbar.MainActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class com.google.android.material.bottomappbar.BottomAppBar
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2485)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2545)
        at android.app.ActivityThread.access$1100(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
        at android.os.Handler.dispatchMessage(Handler.java:102) …
Run Code Online (Sandbox Code Playgroud)

android android-layout material-design bottombar

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

动态加载资源文件夹中的所有图像

我正在构建一个当前从drawable文件夹中读取图像的应用程序.由于我不能在drawable中有子文件夹,我必须在assets文件夹中创建子文件夹并从那里加载图像.有什么方法可以创建一个ListArrayList与资产子文件夹中的所有图像?

我的代码是这样的:

public class ImageAdapter extends BaseAdapter {

    private Context mContext;

    // Keep all Images in array
    public Integer[] mThumbIds = {
            R.drawable.pic_2,
            R.drawable.pic_3, R.drawable.pic_4,
            R.drawable.pic_5, R.drawable.pic_6,
            R.drawable.pic_7, R.drawable.pic_8,
            R.drawable.pic_9, R.drawable.pic_10,
            R.drawable.pic_11, R.drawable.pic_12,
            R.drawable.pic_13, R.drawable.pic_14,
            R.drawable.pic_15
    };

    // Constructor
    public ImageAdapter(Context c){
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int …
Run Code Online (Sandbox Code Playgroud)

android arraylist android-assets

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

ListView滚动时隐藏并显示浮动按钮

嘿伙计们,我在我的应用程序中创建一个listView和一个浮动按钮,我希望隐藏和返回的效果取决于滚动状态.当ListView正在滚动时,按钮隐藏得很好,但是当滚动停止时,按钮不会返回到其初始位置.

有任何想法吗?

我的代码:

public class MainActivity extends ActionBarActivity {
    private ImageButton btn;
    private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final String[] items = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "item 6", "Item 7", "Item 8", "Item 9", "Item 10", "Item 11", "Item 12", "Item 13", "Item 14", "item 15"};
        lv = (ListView)findViewById(R.id.listView);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, items);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, …
Run Code Online (Sandbox Code Playgroud)

android listview onscrolllistener

4
推荐指数
2
解决办法
9786
查看次数

在Fragment里面的ListView中实现搜索

嘿伙计们我想在一个内置到片段中的listview中实现搜索功能listview工作正常但是当我在edittext上键入搜索时它会消失

我的代码:

public class DrinksFragment extends Fragment {

    private View rootView;
    private ArrayAdapter<DrinksList> adapter;
    private List<DrinksList> drinks;
    private ListView lv;
    ArrayList<DrinksList> mAllData;
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.activity_drinks_fragment, container, false);
        populateDrinksList();
        doSearch();
        return rootView;
    }

    private void doSearch() {
        final EditText et = (EditText)rootView.findViewById(R.id.searchListDrinks);
        et.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) …
Run Code Online (Sandbox Code Playgroud)

android listview android-listview android-fragments

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

将名称从listview项目传递给另一个活动

嘿伙计们我已经建立了一个listview,其中我通过json从mysql解析数据.我想单击列表视图上的项目,并将所选项目的名称和价格提供给另一个活动.到目前为止我做过那些:

public void registerCallClickBack() {
        ListView list = (ListView) findViewById(R.id.listView1);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View viewClicked,
                    int position, long id) {
                Object o = parent.getItemAtPosition(position);
                Intent intent = new Intent(MainActivity.this, StockItem.class);
                intent.putExtra("name", o.toString());
                //intent.putExtra("price", R.id.stock_price);
                startActivity(intent);
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

在StockItem.java中

TextView tv;
    String name, ball;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stock_item);
        tv = (TextView)findViewById(R.id.stockView1);
        Bundle extras = getIntent().getExtras();
        if(extras!=null){
            name = extras.getString("name");
        }
        tv.setText(name);
    }
Run Code Online (Sandbox Code Playgroud)

它现在工作正常,但它给我一个{price =所选项目价格,名称=所选项目名称}的结果...我希望有2个textview与第一个有名称和第二个价格.怎么可能?

这就是我的ListView的创建方式.

public void ListDrawer() {
        List<Map<String, String>> …
Run Code Online (Sandbox Code Playgroud)

mysql android listview

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

系统无需用户操作即可授予权限

我面临一个奇怪的问题.我遵循教程,以便在运行时为我构建的应用程序请求权限.问题在于,即使我检查设备是否使用Android M并且我在运行时请求权限,它也不显示对话框.

代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_configuration);
        spinner = (Spinner)findViewById(R.id.database_selection_spinner);
        button = (Button)findViewById(R.id.proceedBtn);
        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
           if (ContextCompat.checkSelfPermission(ConfigurationActivity.this, Manifest.permission.INTERNET) == PackageManager.PERMISSION_GRANTED){
               accessWebService();
           }else {
               if (shouldShowRequestPermissionRationale(Manifest.permission.INTERNET)){
                   StringGenerator.showToast(ConfigurationActivity.this, "Internet Permission needs to be granted");
               }

               requestPermissions(new String[]{Manifest.permission.INTERNET}, AppConstants.PERMISSION_REQ_CODE);

           }
        }else {
            accessWebService();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == AppConstants.PERMISSION_REQ_CODE){
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
                accessWebService();
            }else {
                StringGenerator.showToast(ConfigurationActivity.this, "LOL");
            }
        }else { …
Run Code Online (Sandbox Code Playgroud)

android android-permissions android-6.0-marshmallow runtime-permissions

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

AWS CDK 如何处理假定返回列表而不是字符串的 Fn.getAtt

我有一个 AWS::EC2::VPCEndpoint 资源类型,我想获取其 DnsEntries 值,根据https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint。 html#aws-resource-ec2-vpcendpoint-return-values是 DNS 条目列表。我希望能够从列表中选择第一项,所以我尝试了这样的操作:

const vpcEndpoint = new ec2.CfnVPCEndpoint(this, "vpcendpoint", {
    serviceName: "com.amazonaws.vpce.us-west-2.vpce-svc-xxxxxx",
    vpcId: "vpc-123",
    privateDnsEnabled: false,
    subnetIds: ["subnet-123"],
    vpcEndpointType: "Interface",
});
const fisrtDnsEntry = cdk.Fn.select(0, cdk.Fn.getAtt(vpcEndpoint.logicalId, "DnsEntries"))
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为Fn.select需要一个字符串数组,但Fn.getAtt返回IResolvable并且只有toString()方法。

知道我还能做什么吗?

aws-cdk

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