Wednesday 23 May 2018

Android Runtime Permission with MyPermission Library in Kotlin

Android run time permission with MyPermission Library in Kotlin .
You can get Code from github DOWNLOAD

I am writing below Main Activity Code to have Access Permisssion

MainActivity.java
import android.Manifest
import android.os.Bundle
import com.stacklearning.mypermissionlibrary.MyPermission
import com.stacklearning.mypermissionlibrary.onPermisssionResult
class MainActivity : MyPermission() , onPermisssionResult {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var permissionList = ArrayList<String>()
        permissionList.add( Manifest.permission.CAMERA)
        permissionList.add( Manifest.permission.WRITE_EXTERNAL_STORAGE)
        setPermission(this,permissionList,this)
    }
    override fun onPermissionGranted() {
        // open camera() and ...
        // ... etc what you want to do as per permission
    }
}


Here, We extend MainActivity from MyPermission() and Implement onPermissionResult
and we have to override onPermissionGranted() method .   to proceed with our code .

we have to pass PermissionList, like if we need camea permission, External Storage Permission and any other . Just pass this list to function   setPermission(this,permissionList,this) .


 If any problem in implementation, Please comment .












Wednesday 7 March 2018

Android Scanner App Tutorial With Zxing Library

Android Scanner Tutorial with Zxing Library


Today i am going to let you know how to make "Scanner App". I got lot of messages and comment to a make a tutorial on scanner . 

I have used Zxing Library, there are other libraries also. But i am using

Tuesday 6 March 2018

Custom ListView with Image and Text

Custom ListView with Android

Custom Listview is diffrent from SImple Listview in terms of complexity.
Like  simple Listview, custom ListView also uses Adapter to insert data from data source like as string array, array, database etc.   

Now in this tutorail you will learn  about how to customize list view with an image and text with title and its subtitle. 

So lets start from creating a project first,Open Android Studio, 
select FileNew > New Project. Put name your project CustomListView.

Application Name : CustomListView

Project Name : CustomListView
Package Name : com.stacklearning.Customlistview











Open layout file :

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.stacklearning.customlistview.MainActivity">

    <ListView        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="50dp">
    </ListView>
</RelativeLayout>
 
Open your MainActivity.java and paste the following code.
 
package com.stacklearning.customlistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    ListView list;

    String[] maintitle ={
            "JellyBean","KitKat",
            "Lollipop","Marshmallow",
            "Nougat",
    };

    String[] subtitle ={
            "Sub Title 1","Sub Title 2",
            "Sub Title 3","Sub Title 4",
            "Sub Title 5",
    };

    Integer[] imgid={
            R.drawable.jellybean,R.drawable.kitkat,
            R.drawable.lollipop,R.drawable.marshmallow,
            R.drawable.nougat,
    };
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MyListAdapter adapter=new MyListAdapter(this, maintitle, subtitle,imgid);
        list=(ListView)findViewById(R.id.list);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub                if(position == 0) {
                    //code specific to first list item                    Toast.makeText(getApplicationContext(),"JellyBean",Toast.LENGTH_SHORT).show();
                }

                else if(position == 1) {
                    //code specific to 2nd list item                    Toast.makeText(getApplicationContext(),"KitKat",Toast.LENGTH_SHORT).show();
                }

                else if(position == 2) {

                    Toast.makeText(getApplicationContext(),"Lollipop",Toast.LENGTH_SHORT).show();
                }
                else if(position == 3) {

                    Toast.makeText(getApplicationContext(),"Marshmallow",Toast.LENGTH_SHORT).show();
                }
                else if(position == 4) {

                    Toast.makeText(getApplicationContext(),"Nougat",Toast.LENGTH_SHORT).show();
                }

            }
        });
    }
}
 
 Create an additional mylist.xml file in layout folder which contains view components displayed in listview.
 
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="match_parent"    android:layout_height="match_parent">

    <ImageView        android:id="@+id/icon"        android:layout_width="60dp"        android:layout_height="60dp"        android:padding="5dp" />

    <LinearLayout android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">

        <TextView            android:id="@+id/title"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="Medium Text"            android:textStyle="bold"            android:textAppearance="?android:attr/textAppearanceMedium"            android:layout_marginLeft="10dp"            android:layout_marginTop="5dp"            android:padding="2dp"            android:textColor="#4d4d4d" />
        <TextView            android:id="@+id/subtitle"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="TextView"            android:layout_marginLeft="10dp"/>
    </LinearLayout>
</LinearLayout> 
 
Create another java class MyListAdapter.java which extends ArrayAdapter class. This class customizes our listview.  
 
package com.stacklearning.customlistview;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/** * Created by vspl on 6/3/18. */
public class MyListAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] maintitle;
    private final String[] subtitle;
    private final Integer[] imgid;

    public MyListAdapter(Activity context, String[] maintitle,String[] subtitle, Integer[] imgid) {
        super(context, R.layout.mylist, maintitle);
        // TODO Auto-generated constructor stub
        this.context=context;
        this.maintitle=maintitle;
        this.subtitle=subtitle;
        this.imgid=imgid;

    }

    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater=context.getLayoutInflater();
        View rowView=inflater.inflate(R.layout.mylist, null,true);

        TextView titleText = (TextView) rowView.findViewById(R.id.title);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        TextView subtitleText = (TextView) rowView.findViewById(R.id.subtitle);

        titleText.setText(maintitle[position]);
        imageView.setImageResource(imgid[position]);
        subtitleText.setText(subtitle[position]);

        return rowView;

    };
}



OutPut:




                            DOWNLOAD CODE

Monday 5 March 2018