Thursday, October 28, 2021

Material Date Picker, Date Picker and Time Picker

 1.  Material Date Picker


//local assigned variables
etd_from = (TextView) findViewById(R.id.etd_from);
etd_to = (TextView) findViewById(R.id.etd_to);

//date
etd_from.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MaterialDatePicker dPick_from = MaterialDatePicker.Builder.datePicker()
.setTitleText("RK Select Date").setSelection(MaterialDatePicker.todayInUtcMilliseconds())
.build();
dPick_from.show(getSupportFragmentManager(), "Material_Date_Picker");
dPick_from.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
etd_from.setText(dPick_from.getHeaderText().replace(" ", "-"));
}
});
}
});


2.  Date Picker Dialog 


etd_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DATE);
DatePickerDialog datePickerDialog = new DatePickerDialog(receipt_list.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int date) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.YEAR, year);
calendar1.set(Calendar.MONTH, month);
calendar1.set(Calendar.DATE, date);
CharSequence charSequence = DateFormat.format("dd-MMM-yyyy", calendar1);
etd_to.setText(charSequence);
}
}, yy, mm, dd);
datePickerDialog.show();
}
});


3. Time Picker Dialog


etd_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {



Calendar calendar = Calendar.getInstance();
int Hour = calendar.get(Calendar.HOUR);
int Minute = calendar.get(Calendar.MINUTE);
boolean is24HourFormateRK = DateFormat.is24HourFormat(receipt_list.this);

TimePickerDialog timePickerDialog = new TimePickerDialog(receipt_list.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hour_, int min_) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.HOUR, hour_);
calendar1.set(Calendar.MINUTE, min_);
CharSequence charSequence = DateFormat.format("hh:mm a", calendar1);
etd_to.setText(charSequence);
}
}, Hour, Minute, is24HourFormateRK);
timePickerDialog.show();

}
});


4. XML


<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1"
android:background="@color/dtp_background"
android:layout_margin="2dp">

<TextView
android:id="@+id/etd_from"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint=" From Date"
android:inputType="date"
android:minHeight="48dp"
android:padding="8dp"
android:textSize="20sp" />

<ImageButton
android:id="@+id/imgBtn_from"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="0dp"
app:srcCompat="@drawable/ic_baseline_close_24" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1"
android:background="@color/dtp_background"
android:layout_margin="2dp">

<TextView
android:id="@+id/etd_to"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="To Date"
android:inputType="date"
android:minHeight="48dp"
android:padding="8dp"
android:textSize="20sp" />

<ImageButton
android:id="@+id/imgBtn_to"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="0dp"
app:srcCompat="@drawable/ic_baseline_close_24" />
</LinearLayout>

</LinearLayout>


5.


6.


Swipe Refresh Layout Event

 1. XML


<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/SwipeRefreshLayout1">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rcyVw_receipt"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>


2.  In Activity


SwipeRefreshLayout swipeRefreshLayout;

//button
Button btn_rec_search;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receipt_list);


//swipe refresh layout
swipeRefreshLayout = findViewById(R.id.SwipeRefreshLayout1);

    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
    f_show_list1();
    swipeRefreshLayout.setRefreshing(false);
    }
    });
}




Wednesday, October 27, 2021

Populate Recycler View with Api

1. Recycler View Adapter


public class ReceiptListAdapter extends RecyclerView.Adapter<ReceiptListAdapter.ReceiptListViewHolder> {

// List<UserModel> list = new ArrayList<UserModel>();
List<receipt> data;
iItemClickListnerRK iItemClickListnerRk;

public ReceiptListAdapter(List<receipt> data, iItemClickListnerRK iItemClickListnerRk) {
this.data = data;
this.iItemClickListnerRk = iItemClickListnerRk;
}

@Override
public ReceiptListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.receipt_item_list, parent, false);
return new ReceiptListViewHolder(view);
}

@Override
public void onBindViewHolder(ReceiptListViewHolder holder, int position) {
String title = data.get(position).toString();
holder.txtTitle.setText(title);

holder.itemView.setOnClickListener(view -> {
iItemClickListnerRk.onClickItemListnerRK(title, position);//this will get current index of item in recyclerView
});
}

@Override
public int getItemCount() {
return data.size();
}

public interface iItemClickListnerRK {
void onClickItemListnerRK(String itemNameRK, int idx);
}


public class ReceiptListViewHolder extends RecyclerView.ViewHolder {
ImageView imgIcon;
TextView txtTitle;

public ReceiptListViewHolder(View itemView) {
super(itemView);
imgIcon = itemView.findViewById(R.id.imgIcon);
txtTitle = itemView.findViewById(R.id.txtTitle);
}
}
}



2. Call Api


public class VolleyActions {

Context context;
ProgressBar progressBar;


public VolleyActions(Context context, ProgressBar progressBar) {
this.context = context;
this.progressBar = progressBar;
}


//get meter Json Object
public interface IVolleyGet {
void onError(String message);

void onResponse(JSONObject jsonObject);
}

public void volleyGet(String appedUrl, String filters, IVolleyGet iVolleyGet) {


Api_Urls api_urls = new Api_Urls();

String getUrl = api_urls.API_URL + appedUrl + filters;

RequestQueue requestQueue = Volley.newRequestQueue(context);

//api key authentication
session_rk sessionRk = new session_rk(context);
String apiKey = sessionRk.f_api_key();
//api key authentication


//Start progress bar
progressBar.setVisibility(View.VISIBLE);
//Execute post request
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, getUrl, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// System.out.println(response);
progressBar.setVisibility(View.INVISIBLE);

//JSONObject rdata;
try {
Integer st = Integer.parseInt(response.getString("Item1").toString());
if (st.equals(200)) {
//rdata = response.getJSONObject("m_Item3");
iVolleyGet.onResponse(response);
} else {
Toast.makeText(context, "" + response.getString("Item2"), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
Toast.makeText(context, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}

}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context, "" + error.getMessage(), Toast.LENGTH_SHORT).show();
error.printStackTrace();
progressBar.setVisibility(View.INVISIBLE);
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json");
params.put("Authorization", "basic " + apiKey);

return params;
}
};

requestQueue.add(jsonObjectRequest);

}
//get meter Json Object e


}



3. Populate Recycler View with Model List


public void f_show_list1() {

List<receipt> lng = new ArrayList<receipt>();
String filters = "?";
// if (!etd_from.getText().toString().isEmpty() && !etd_to.getText().toString().isEmpty()) {
// filters += "Date_From=" + etd_from.getText().toString() + "&";
// filters += "Date_To=" + etd_to.getText().toString() + "&";
// }
userAcc user = (userAcc) spnr_pcode.getSelectedItem();
if (!user.getLCode().isEmpty()) {
filters += "Pcode=" + user.getLCode() + "&";
}

VolleyActions a = new VolleyActions(this, progressBar);
a.volleyGet("receipt/data", filters, new VolleyActions.IVolleyGet() {
@Override
public void onError(String message) {
Toast.makeText(receipt_list.this, "Invalid transaction.", Toast.LENGTH_SHORT).show();
}

@Override
public void onResponse(JSONObject jsonObject) {
try {
JSONArray jsonArray = jsonObject.getJSONArray("Item3");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jObj = jsonArray.getJSONObject(i);
receipt obj = new receipt();
obj.setRec_No(jObj.getString("Rec_No"));
obj.setPName(jObj.getString("PName"));
obj.setRec_Date(jObj.getString("Rec_Date"));
obj.setAmt(Double.parseDouble(jObj.getString("Amt")));
lng.add(obj);
}

//recycler view
RecyclerView recyclerView1 = findViewById(R.id.rcyVw_receipt);
recyclerView1.setLayoutManager(new LinearLayoutManager(receipt_list.this));
ReceiptListAdapter recyclerAdapter1 = new ReceiptListAdapter(lng, new ReceiptListAdapter.iItemClickListnerRK() {
@Override
public void onClickItemListnerRK(String itemNameRK, int idx) {
Toast.makeText(receipt_list.this, "Clicked => P:" + idx + ", item:" + itemNameRK, Toast.LENGTH_SHORT).show();
}
});
recyclerView1.setAdapter(recyclerAdapter1);
//recycler view e


} catch (JSONException e) {
e.printStackTrace();
}
}
});

Toast.makeText(receipt_list.this, "Fetching...", Toast.LENGTH_SHORT).show();
}

 

Monday, October 25, 2021

Other

 1. Menu Event Manage in xml

      android.menuCategory="secondary"


Saturday, October 23, 2021

Drop Down List or Spinner With Model

1. Model


public class User {
private int id;
private String Name;
private String Email;
private int Age;

public User(int id, String name, String email, int age) {
this.id = id;
Name = name;
Email = email;
Age = age;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return Name;
}

public void setName(String name) {
Name = name;
}

public String getEmail() {
return Email;
}

public void setEmail(String email) {
Email = email;
}

public int getAge() {
return Age;
}

public void setAge(int age) {
Age = age;
}

@Override
public String toString() {
return id + " : " + Name;

}
}

2. Main Activity

public class MainActivity extends AppCompatActivity {
//define variable
private Spinner spinner;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//assign variagle
spinner = findViewById(R.id.spinner1);
button = findViewById(R.id.button1);

//populate list
List<User> userList = new ArrayList<>();
userList.add(new User(1, "Ram", "ram@gamil.com", 40));
userList.add(new User(2, "Shyam", "shyam@gamil.com", 45));
userList.add(new User(3, "Ram Kumar", "ramkumar@gamil.com", 32));
userList.add(new User(4, "Manoj Sing", "manoj@gamil.com", 56));

//define and assing array adapter
ArrayAdapter<User> adapter = new ArrayAdapter<User>(this,
android.R.layout.simple_spinner_item, userList);

//Assign adapter drop down list
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//assign into spinner
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
User user = (User) adapterView.getSelectedItem();
DisplayUserData(user);
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {

}
});

}

public void on_btn_submit(View view) {
User user = (User) spinner.getSelectedItem();
DisplayUserData(user);
}

private void DisplayUserData(User user) {
int id = user.getId();
String name = user.getName();
String email = user.getEmail();
int age = user.getAge();

String sql = "";
sql += "\nID : " + id;
sql += "\nName : " + name;
sql += "\nEmail : " + email;
sql += "\nAge : " + age;

Toast.makeText(MainActivity.this, ""+sql, Toast.LENGTH_SHORT).show();
}

}

Drop Down List or Spinner


public class MainActivity extends AppCompatActivity {

Button button;
Spinner spinner;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = findViewById(R.id.btn_submit);
et = findViewById(R.id.et_name1);
spinner = findViewById(R.id.spinner1);

// Spinner click listener
//spinner.setOnItemSelectedListener(this);

// Spinner Drop down elements
List<String> categories = new ArrayList<String>();
categories.add("Item 1");
categories.add("Item 2");
categories.add("Item 3");
categories.add("Item 4");
categories.add("Item 5");
categories.add("Item 6");

// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, categories);

// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);

//Drop Down Selected Event
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String sel_name = adapterView.getSelectedItem().toString();
Toast.makeText(MainActivity.this, "Selected item : "+sel_name, Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {

}
});

//Button Submit Event
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String ddl_str = String.valueOf(spinner.getSelectedItem());
Toast.makeText(MainActivity.this, "Submitted : "+ddl_str, Toast.LENGTH_SHORT).show();
}
});

}
}

Friday, October 22, 2021

Recycler View item Click event

1. Define in adapter with inter face


public class programmingAdapter extends RecyclerView.Adapter<programmingAdapter.programmingViewHolder> {

String[] data;
iItemClickListnerRK iItemClickListnerRk;

public programmingAdapter(String[] data, iItemClickListnerRK iItemClickListnerRk) {
this.data = data;
this.iItemClickListnerRk = iItemClickListnerRk;
}

@Override
public programmingViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.list_item_layout, parent, false);
return new programmingViewHolder(view);
}

@Override
public void onBindViewHolder(programmingViewHolder holder, int position) {
String title = data[position];
holder.txtTitle.setText(title);

holder.itemView.setOnClickListener(view -> {
iItemClickListnerRk.onClickItemListnerRK(title, position);//this will get current index of item in recyclerView
});
}

@Override
public int getItemCount() {
return data.length;
}

public interface iItemClickListnerRK {
void onClickItemListnerRK(String itemNameRK, int idx);
}


public class programmingViewHolder extends RecyclerView.ViewHolder {
ImageView imgIcon;
TextView txtTitle;

public programmingViewHolder(View itemView) {
super(itemView);
imgIcon = itemView.findViewById(R.id.imgIcon);
txtTitle = itemView.findViewById(R.id.txtTitle);
}
}


}


2. Apply in MainActivity

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView recyclerView=findViewById(R.id.programmingListRK);
recyclerView.setLayoutManager(new LinearLayoutManager(this));

String[] lng={"Java","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python"};

programmingAdapter adapter = new programmingAdapter(lng, new programmingAdapter.iItemClickListnerRK() {
@Override
public void onClickItemListnerRK(String itemNameRK, int idx) {
Toast.makeText(MainActivity.this, "Clicked => P:"+idx+", item:"+itemNameRK, Toast.LENGTH_SHORT).show();
}
});

recyclerView.setAdapter(adapter);

}
}

3. xml main

<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
    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:id="@+id/programmingListRK"
    tools:context=".MainActivity">


</androidx.recyclerview.widget.RecyclerView>

4. xml list view for recycler

<?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="wrap_content"
    android:padding="8dp">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imgIcon"
        android:src="@mipmap/ic_launcher"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:id="@+id/txtTitle"
        android:textSize="24sp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:layout_marginLeft="16dp"/>

</LinearLayout>

Recycler View

Fill Recycler View

1. Create Adapter


public class programmingAdapter extends RecyclerView.Adapter<programmingAdapter.programmingViewHolder> {


    String[] data;


    public programmingAdapter(String[] data) {

        this.data = data;

    }

    @Override

    public programmingViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        LayoutInflater inflater = LayoutInflater.from(parent.getContext());

        View view = inflater.inflate(R.layout.list_item_layout,parent,false);

        return new programmingViewHolder(view);

    }

    @Override

    public void onBindViewHolder(programmingViewHolder holder, int position) {

        String title = data[position];

        holder.txtTitle.setText(title);

    }

    @Override

    public int getItemCount() {

        return data.length;

    }

    public class programmingViewHolder extends RecyclerView.ViewHolder {

        ImageView imgIcon;

        TextView txtTitle;

        public programmingViewHolder(View itemView) {

            super(itemView);

            imgIcon = itemView.findViewById(R.id.imgIcon);

            txtTitle = itemView.findViewById(R.id.txtTitle);

        }

    }

}


2. Apply or Implement in Main Activity

public class MainActivity extends AppCompatActivity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        RecyclerView recyclerView=findViewById(R.id.programmingListRK);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));


        String[] lng={"Java","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python"};

        recyclerView.setAdapter(new programmingAdapter(lng));


    }

}


List View

 ListView listView;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        listView = findViewById(R.id.lv1);


        ArrayList<String> arrayList = new ArrayList<>();


        arrayList.add("Ram");

        arrayList.add("Shyam");

        arrayList.add("Ghanshyam");

        arrayList.add("Murli Manohar");

        arrayList.add("Radhe Shyam");

        arrayList.add("Shyam Murari");

        arrayList.add("Ram");

        arrayList.add("Shyam");

        arrayList.add("Ghanshyam");

        arrayList.add("Murli Manohar");

        arrayList.add("Radhe Shyam");

        arrayList.add("Shyam Murari");

        arrayList.add("Shyam");

        arrayList.add("Ghanshyam");

        arrayList.add("Murli Manohar");

        arrayList.add("Radhe Shyam");

        arrayList.add("Shyam Murari");

        arrayList.add("Ram");

        arrayList.add("Shyam");

        arrayList.add("Ghanshyam");

        arrayList.add("Murli Manohar");


        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList);

        listView.setAdapter(arrayAdapter);


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                Toast.makeText(MainActivity.this, "Clicked : "+arrayList.get(i), Toast.LENGTH_SHORT).show();

            }

        });


    }

Wednesday, October 20, 2021

Text Property

Text complete width spreads like parent width (layout weight)

layout_weight="1"

Sunday, October 10, 2021

Add Dependency in Android Studio

Dependency path

File > Project Structure >  Dependencies > All Modules > All Dependencies > + > 1.Library Dependency

Short cut  Alt+Ctrl+Shift+S




Date format in android

public String f_dateFormat (String cdate , String dateToFormat) { // String cdate = "2013-05-15T10:00:00-0700"; ...