Monday, February 16, 2015
Android iPhone Perspective App Mockup PSD

Free Download Android / iPhone Perspective App PSD Mockup. Dont forget to press L and share with your friends! Enjoy!
Type : PSD
Category : Mockups
License : Free
Author : Dribbble
Thursday, February 5, 2015
The Room Download Android Game
The Room
Android Full game

The game has beautiful 3D realistic graphics. You can rotate whole room with a finger in 360 mode.


Game Requirements:
Status : Paid
Price: 1.20 $
Download from Google PlayStore
IView SuperPad iView 774TPC Android Tablet PC Firmware
IView SuperPad iView 774TPC, iview tablet support , Allwinner A20 Android 7 inch Tablet PC firmware
Short Tablet pc review iView 774TPC .
Company Review about Tablet PC.
Read iViewUS company review about tablet pc.
Order online to buy iView Tablet PC from iView
Encyclopedia:-
Read Article About Allwinner Technology
Tablet PC Specifications:
LCD | 7 inch High Resolution Capacitive multi touch Screen |
Screen Resolution | 800x480 Pix |
Processor | 1.2 Ghz Dual Core Cortex A7 |
Chipset / Boxchip | Allwinner A20 |
RAM | 1GB DDR3 DRAM |
Built in Memory | 8 GB |
External Memory | Support Micro Card (upto 32GB) |
Wifi | 802.11 b/g/n supported |
Blue tooth | N/A |
Sim | N/A |
Camera | 0.3 Megapixel front , 2 MP Back |
HDMI /3g Dongle | HDMI (1080 P) ,Support 3G Dongle |
Microphone | Built IN |
Weight | 485 g |
Android Version | 4.2 |
Tablet Upgrade/Restore Instructions:
Alternative Tablet Flashing Tools:
- Tablet Flashing Tool : Firmware upgrade tool LiveSuit & Drivers
- Tablet Flashing Tool: Firmware upgrade Tool Phoenix Usb Pro
- Flashing with SD Card:Firmware update instruction with microSD card
Flashing Tutorials for Allwinner Tablets:
- LiveSuit Tutorial : how to flash tablet with LiveSuit
- Phoenix Usb PrO Video Tutorial :Tutorial
Common Android Tablets issues :
6. Android Market having problems or generating errors.
7.Upgrading to new Android version.
T730 v6 1 a13 gtide t730 v1 0t Android Tablet Firmware
Allwinner T730 mainboard v6.1 a13gtide-t730-v1.0t Android Firmware.
Encyclopedia:-
Allwinner A1X Chips
LCD | 7inch,LED ;Multi-touch / Capacitive TP |
Screen Resolution | 800x1280 Pix |
Processor | 1.2GHZ /Cortex A8 |
Chipset / Boxchip | Allwinner A13 |
RAM | 1GB DDR3 |
Built in Memory | 4 GB |
External Memory | Support Micro Card (Upto 32GB) |
Wifi | 802.11 b/g/n supported |
Blue tooth | N/A |
Sim/GSM/CDMA | quad band 850/900/1800/1900Mhz |
Camera | Dual camera 0.3 Mega front / Back 2.0 Mega |
HDMI /3g Dongle | Support USB 3G Dongle, EVDO/WCDMA |
Microphone/SPK | Built IN /0.5 w speaker |
Weight | 0.5 KG |
Android Version | 4.0.3 |
3-4 Hours. |
Flashing Tools
- Flashing Tool : LiveSuit Pack
- Flashing Tool: Phoenix Usb Pro
Flashing Tutorials
- Livesuit Tutorial : how to flashing tablet with Livesuit
- Phoenix Usb PrO Video Tutorial :Video Tutorial
Recommended Tools
Related Posts
Allwinner T730 v1.0
Allwinner T730 V6.1
Allwinner A13 V5.0
When I need to Restore or Reset my Android Tablet ?
6. Google play store having problems or generating errors.
7.Upgrading to new Android OS.
Wednesday, February 4, 2015
Android beginner tutorial Part 43 AlertDialog custom layout
Firstly, create the layout xml. I called mine custom_alert_layout.xml. It is a simple LinearLayout container with 2 EditTexts in it - with ids username and password. They are also stylized to look and behave like username and password fields in a log in window.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:id="@+id/username"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="Username" />
<EditText
android:id="@+id/password"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif"
android:hint="Password"/>
</LinearLayout>
Now go to MainActivity.java class. First we declare a View:
private View alertView;
Then in onCreate() function we can use a LayoutInflater to get a View out of the xml layout. Apply this View value to alertView:
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
alertView = inflater.inflate(R.layout.custom_alert_layout, null);
You can apply this view to the AlertDialog using the builders setView() method:
builder.setView(alertView);
You can still use AlertDialogs elements made with the builder though! Ill add a title, an icon and a button to this layout using the builder.
In the onClick() event handler function of the button, I extract the text values of the two EditText objects and display them in a Toast:
@Override
public void onClick(DialogInterface dialog, int which) {
EditText t_user = (EditText)alertView.findViewById(R.id.username);
EditText t_pass = (EditText)alertView.findViewById(R.id.password);
String username = t_user.getText().toString();
String password = t_pass.getText().toString();
Toast toast = Toast.makeText(getApplicationContext(), "User: " + username + ", Pass: " + password, Toast.LENGTH_SHORT);
toast.show();
}
Full code:
package com.kircode.codeforfood_test;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity{
private AlertDialog myDialog;
private View alertView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.testButton);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
alertView = inflater.inflate(R.layout.custom_alert_layout, null);
builder.setView(alertView);
builder.setTitle("Log in");
builder.setIcon(R.drawable.snowflake);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText t_user = (EditText)alertView.findViewById(R.id.username);
EditText t_pass = (EditText)alertView.findViewById(R.id.password);
String username = t_user.getText().toString();
String password = t_pass.getText().toString();
Toast toast = Toast.makeText(getApplicationContext(), "User: " + username + ", Pass: " + password, Toast.LENGTH_SHORT);
toast.show();
}
});
builder.setCancelable(false);
myDialog = builder.create();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialog.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
The resulting application looks something like this:

Thanks for reading!
Android beginner tutorial Part 12 EditText component
The EditText component is used to allow the user enter text. EditText is a class that extends TextView, but instead of just displaying the text, it displays it in a text field with a slight border and lets the user edit the text by tapping on the field.
The main class of the EditText class is getText(). It returns the text that is currently the value of this text field, but the type of the returned value is Editable, not String. The difference is that the Editable type is a text interface, which has variable text (based on the changes in the text field), as opposed to String, which is just a piece of text that doesnt change.
Theres also a method called setHint(), which displays a tip that is supposed to give the user an idea of what the text fields purpose is. Its value can be set to, for example, "Enter text here..." or "Your message..." The user sees it as the value of the textfield before he taps on it. Then it gets changed to whatever text he enters.
There are also a few methods in the class for managing text selection, such as selectAll(), setSelection(int start, int stop), setSelection(int index). The difference between the two setSelection() methods is that the first way to use it is to specify the beginning and ending indices of the selection, while the other way to use it is to just provide 1 value which sets the cursor to a specific index position.
Lets create a simple example in our activity_main.xml layout in our Android project.
Heres the code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/textHint"
android:textSize="24sp"/>
</LinearLayout>
The strings.xml code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Code For Food Test</string>
<string name="textHint">Enter your message here!</string>
<string name="menu_settings">Settings</string>
</resources>
The results:

If you test your application now, youll see that after tapping on the text field, a keyboard UI pops up just like it usually does when entering text using the device.
Thats all for today.
Thanks for reading!
MobileGo Android PC Suite for Windows Free Downlad
MobileGo PC Suite for Android
Download Full version Free

Android Pc Suite Features :
- Transfer Media and files .
- Edit your contacts
- SMS Assistant
- Apps Organizer
- 1 Click apps and videos download.
Saturday, January 31, 2015
Cube U55GT Tablet Android 4 2 OS official firmware
Android beginner tutorial Part 74 Calling contacts confirming deletion
Go to onCreate() function and add an item click listener for the list. In the handler, retreive the phone number value using the cursor and then use a function call() with the number as the parameter:
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
cursor.moveToPosition(position);
call(cursor.getString(2));
}
});
Full onCreate() function:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.contactList);
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
dialogEdit(position, id);
return true;
}
});
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
cursor.moveToPosition(position);
call(cursor.getString(2));
}
});
updateList();
}
The call() method receives the phone number and calls it using an intent.
public void call(String phone){
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
startActivity(callIntent);
}
Make sure that phone calling is permitted in AndroidManifest.xml:
<uses-permission android:name="android.permission.CALL_PHONE"/>
Now declare a new variable, deleteDialog:
private AlertDialog deleteDialog;
In the dialogEdit() function, find the part where the Negative button is set. In the click handler, call a function called deleteConfirm() and pass the id as an integer as the parameter:
builder.setNegativeButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
deleteConfirm((int)id);
}
});
Full dialogEdit() function:
public void dialogEdit(final int position, final long id){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
alertView = inflater.inflate(R.layout.add_window, null);
builder.setView(alertView);
builder.setTitle("Edit contact");
builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText t_name = (EditText)alertView.findViewById(R.id.inp_name);
EditText t_phone = (EditText)alertView.findViewById(R.id.inp_phone);
String new_name = t_name.getText().toString();
String new_phone = t_phone.getText().toString();
ContentValues values = new ContentValues();
values.put(myDbHelper.NAME, new_name);
values.put(myDbHelper.PHONE, new_phone);
getContentResolver().update(CONTENT_URI, values, myDbHelper._ID+"="+id, null);
updateList();
}
});
builder.setNegativeButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
deleteConfirm((int)id);
}
});
builder.setCancelable(true);
EditText t_name = (EditText)alertView.findViewById(R.id.inp_name);
EditText t_phone = (EditText)alertView.findViewById(R.id.inp_phone);
cursor.moveToPosition(position);
t_name.setText(cursor.getString(1));
t_phone.setText(cursor.getString(2));
editDialog = builder.create();
editDialog.show();
}
Create the deleteConfirm() function. Inside of it, build a new Dialog with two buttons - a positive "Delete" and negative "Cancel".
Delete the contact from the database when "Delete" is pressed, and do nothing when "Cancel" is pressed:
public void deleteConfirm(final int id){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Delete contact?");
builder.setMessage("Are you sure you want to delete this contact?");
builder.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getContentResolver().delete(CONTENT_URI, myDbHelper._ID+"="+id, null);
updateList();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setCancelable(true);
deleteDialog = builder.create();
deleteDialog.show();
}
Thats all! Here is the full code:
package com.kircode.codeforfood_test;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
public class MainActivity extends Activity{
private static final Uri CONTENT_URI = Uri.parse("content://com.kircode.codeforfood_test.mycontentprovider/contacts");
private static final int IDM_ADD = 101;
private AlertDialog addDialog;
private AlertDialog deleteDialog;
private AlertDialog editDialog;
private View alertView;
private Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.contactList);
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
dialogEdit(position, id);
return true;
}
});
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
cursor.moveToPosition(position);
call(cursor.getString(2));
}
});
updateList();
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
menu.add(Menu.NONE, IDM_ADD, Menu.NONE, "Add");
return(super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case IDM_ADD:
dialogAdd();
break;
}
return(super.onOptionsItemSelected(item));
}
public void call(String phone){
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
startActivity(callIntent);
}
public void dialogAdd(){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
alertView = inflater.inflate(R.layout.add_window, null);
builder.setView(alertView);
builder.setTitle("Add contact");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText t_name = (EditText)alertView.findViewById(R.id.inp_name);
EditText t_phone = (EditText)alertView.findViewById(R.id.inp_phone);
String new_name = t_name.getText().toString();
String new_phone = t_phone.getText().toString();
ContentValues values = new ContentValues();
values.put(myDbHelper.NAME, new_name);
values.put(myDbHelper.PHONE, new_phone);
getContentResolver().insert(CONTENT_URI, values);
updateList();
}
});
builder.setCancelable(true);
addDialog = builder.create();
addDialog.show();
}
public void dialogEdit(final int position, final long id){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
alertView = inflater.inflate(R.layout.add_window, null);
builder.setView(alertView);
builder.setTitle("Edit contact");
builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText t_name = (EditText)alertView.findViewById(R.id.inp_name);
EditText t_phone = (EditText)alertView.findViewById(R.id.inp_phone);
String new_name = t_name.getText().toString();
String new_phone = t_phone.getText().toString();
ContentValues values = new ContentValues();
values.put(myDbHelper.NAME, new_name);
values.put(myDbHelper.PHONE, new_phone);
getContentResolver().update(CONTENT_URI, values, myDbHelper._ID+"="+id, null);
updateList();
}
});
builder.setNegativeButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
deleteConfirm((int)id);
}
});
builder.setCancelable(true);
EditText t_name = (EditText)alertView.findViewById(R.id.inp_name);
EditText t_phone = (EditText)alertView.findViewById(R.id.inp_phone);
cursor.moveToPosition(position);
t_name.setText(cursor.getString(1));
t_phone.setText(cursor.getString(2));
editDialog = builder.create();
editDialog.show();
}
public void deleteConfirm(final int id){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Delete contact?");
builder.setMessage("Are you sure you want to delete this contact?");
builder.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getContentResolver().delete(CONTENT_URI, myDbHelper._ID+"="+id, null);
updateList();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setCancelable(true);
deleteDialog = builder.create();
deleteDialog.show();
}
public void updateList(){
String[] columns = new String[] {myDbHelper._ID, myDbHelper.NAME, myDbHelper.PHONE};
ContentResolver resolver = getContentResolver();
cursor = resolver.query(CONTENT_URI, columns, null, null, null);
final ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.customrow, cursor, new String[] {myDbHelper.NAME, myDbHelper.PHONE}, new int[] {R.id.t_name, R.id.t_phone}, 0);
ListView list = (ListView)findViewById(R.id.contactList);
list.setAdapter(adapter);
}
}
We now have a simple application that lets us create a simple editable contact list, which we can use to call people.
Thanks for reading!
PhoneGap Tutorial Parsing xml file using javascipt and displaying the data on the android and ios mobile screens
Title : I am going to explain u how to parse xml file and display data on your mobile screen.
Description : In todays world every business application need to contact webservices or xml services or xml files in the server and parse the files and need to display some results on the screen.for example take a live cricket score card : in the server we write a program where the score will be updated ball by ball,run by run in the web service , and the xml file also get updated with the live score and now the our application screen should also contact the webservice every 5 seconds and parse xml file and will update the live score for us , I will explain this with source code latter , for now i will explain you a simple example.
Here is the xml file which we are going to parse.
MakeMyTrip.com
MakeMyTrip.com is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/makemytrip-logo.jpg
GoIbibo.com
GoIbibo.com is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/goibibo_logo.png
Abhibus.com
Abhibus.com is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/abhibus-logo.png
Travelyaari.com
Travelyaari.com is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/travelyaari-com-logo-w240.png
Redbus.in
Redbus.com is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/logo_bc9228d_163.jpg
Expedia.co.in
Expedia.co.in is one of the good website providing Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/expedia-logo.png
Other websites
We Provide more websites that offer good Travel services to book oonline Flight,Hotel,Train and Bus tickets with guranteed lowest prices and provides new deals , offers and discount coupons every week and help you save money upto 20% while you travel.
travellogos/travel-agency-logos.jpg
Now we have to parse the above file using java script and display the results using html5. Here is the html and javascript code to parse this xml file.
Javascript file
function travel(){
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","Travel.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
travels = xmlDoc.getElementsByTagName("website");
alert("travels:"+travels.length);
var websites = [];
var description = [];
var logos = [];
for(var travel=0;travelvar websitename = travels[travel].getElementsByTagName("sitename")[0].childNodes[0].nodeValue;
websites.push(websitename);
var des = travels[travel].getElementsByTagName("Description")[0].childNodes[0].nodeValue;
description.push(des);
var images = travels[travel].getElementsByTagName("Image")[0].childNodes[0].nodeValue;
logos.push(images);
}
var listview = document.getElementById("container");
var ul = document.createElement("ul");
for(var i=0;ivar livalue= document.createTextNode(websites[i]);
var desvalue = document.createTextNode(description[i]);
var li = document.createElement("li");
var table = document.createElement("table");
var table1 = document.createElement("table");
var tr1 = document.createElement("tr");
var td1 = document.createElement("td");
var img = new Image();
img.src= logos[i];
img.setAttribute("width",60);
img.setAttribute("height",30);
img.setAttribute(onclick, "test()");
td1.appendChild(img);
tr1.appendChild(td1);
var tr2 = document.createElement("tr");
var td2 = document.createElement("td");
var td3 = document.createElement("td");
td2.appendChild(livalue);
td3.appendChild(desvalue);
tr1.appendChild(td2);
tr2.appendChild(td3);
table.appendChild(tr1);
table1.appendChild(tr2);
li.appendChild(table);
li.appendChild(table1);
ul.appendChild(li);
}
listview.appendChild(ul);
}
Html File
Minimal AppLaud App
Coupons Shop
