0% found this document useful (0 votes)
57 views26 pages

QALB

The document outlines multiple Android application programs, including a VisitCard, Simple Calculator, Counter Application, Text-to-Speech, and Wallpaper Changing App. Each program includes XML layout files and corresponding Java code for functionality. The applications demonstrate various features such as user input handling, text display, and interaction with device capabilities.

Uploaded by

who665759
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views26 pages

QALB

The document outlines multiple Android application programs, including a VisitCard, Simple Calculator, Counter Application, Text-to-Speech, and Wallpaper Changing App. Each program includes XML layout files and corresponding Java code for functionality. The applications demonstrate various features such as user input handling, text display, and interaction with device capabilities.

Uploaded by

who665759
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

PROGRAM 1: VISITCARD

Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="17dp"
android:layout_marginLeft="17dp"
android:layout_marginTop="17dp"
android:layout_marginEnd="168dp"
android:layout_marginRight="168dp"
android:layout_marginBottom="498dp"
android:text="SSIT"
android:textSize="38dp" />

<ImageView
android:id="@+id/imageView"
android:layout_width="290dp"
android:layout_height="174dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="-26dp"
android:layout_marginRight="-26dp"
android:layout_marginBottom="517dp"
app:srcCompat="@drawable/ssit" />

<View
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="4dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="483dp"
android:background="#4444" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="131dp"
android:layout_marginRight="131dp"
android:layout_marginBottom="420dp"
android:text="Subhash C S"
android:textSize="30dp"
android:textStyle="bold" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="80dp"
android:layout_marginRight="80dp"
android:layout_marginBottom="379dp"
android:text="Assistant Professor-ISE"
android:textSize="25dp" />

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="129dp"
android:layout_marginRight="129dp"
android:layout_marginBottom="342dp"
android:text="Ph No: 9988776655"
android:textSize="20dp" />

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="89dp"
android:layout_marginRight="89dp"
android:layout_marginBottom="300dp"
android:text="SSIT,TUMAKURU,572105"
android:textSize="20dp" />

<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="75dp"
android:layout_marginRight="75dp"
android:layout_marginBottom="262dp"
android:text="Email: [email protected]"
android:textSize="20dp" />
</RelativeLayout>

MainActivity.java
package com.example.visit;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

OUTPUT:
PROGRAM 2 : SIMPLE CALCULATOR
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="117dp"
android:layout_marginBottom="532dp"
android:text="Simple Calculator"
android:textSize="24sp" />

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="95dp"
android:layout_marginBottom="457dp"
android:ems="10"
android:hint="Enter the Number1"
android:inputType="textPersonName"
android:text="" />

<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="95dp"
android:layout_marginBottom="392dp"
android:ems="10"
android:hint="Enter the Number2"
android:inputType="textPersonName"
android:text="" />
<TextView
android:id="@+id/textView1"
android:layout_width="129dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="123dp"
android:layout_marginBottom="319dp"
android:text="0"
android:textSize="34sp" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="245dp"
android:layout_marginBottom="243dp"
android:onClick="add"
android:text="ADD" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="56dp"
android:layout_marginBottom="243dp"
android:onClick="sub"
android:text="SUB" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="240dp"
android:layout_marginBottom="170dp"
android:onClick="mul"
android:text="MUL" />

<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="53dp"
android:layout_marginBottom="165dp"
android:onClick="div"
android:text="DIV" />
</RelativeLayout>

MainActivity.java
package com.example.calculator;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


EditText e1,e2;
TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1=(EditText)findViewById(R.id.editText1);
e2=(EditText)findViewById(R.id.editText2);
tv1=(TextView)findViewById(R.id.textView1);
}
public void add(View view){
int a1 = Integer.parseInt(e1.getText().toString());
int a2 = Integer.parseInt(e2.getText().toString());
int result= a1+a2;
tv1.setText(""+result);
}
public void sub(View view){
int a1 = Integer.parseInt(e1.getText().toString());
int a2 = Integer.parseInt(e2.getText().toString());
int result= a1-a2;
tv1.setText(""+result);
}
public void mul(View view){
int a1 = Integer.parseInt(e1.getText().toString());
int a2 = Integer.parseInt(e2.getText().toString());
int result= a1*a2;
tv1.setText(""+result);
}
public void div(View view){
int a1 = Integer.parseInt(e1.getText().toString());
int a2 = Integer.parseInt(e2.getText().toString());
float result= a1/a2;
tv1.setText(""+result);
}
}

OUTPUT:
PROGRAM 3 : COUNTER APPLICATION
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">
<TextView
android:layout_width="378dp"
android:layout_height="68dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="18dp"
android:layout_marginBottom="602dp"
android:text="Counter Application"
android:textSize="38dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="121dp"
android:layout_height="32dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="145dp"
android:layout_marginBottom="478dp"
android:text="Counter Value" />
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="297dp"
android:layout_marginBottom="295dp"
android:text="Start" />
<Button
android:id="@+id/btn_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="74dp"
android:layout_marginBottom="292dp"
android:text="Stop" />
</RelativeLayout>

MainActivity.java
package com.example.counter;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button btnstart, btnstop;
TextView txtcounter;
int i=1;
Handler customHandler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnstart=findViewById(R.id.btn_start);
btnstop=findViewById(R.id.btn_stop);
txtcounter=findViewById(R.id.textView);
btnstart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
customHandler.postDelayed(updateTimerThread,0);
}
});
btnstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
customHandler.removeCallbacks(updateTimerThread);
}
});
}
private final Runnable updateTimerThread=new Runnable() {
@Override
public void run() {
txtcounter.setText(""+i);
customHandler.postDelayed(this,1000);
i++;
}
};
}

OUTPUT:
PROGRAM 4 : TEXT-TO-SPEECH
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="53dp"
android:layout_marginRight="53dp"
android:layout_marginBottom="537dp"
android:text="Text2SpeechApp"
android:textSize="40dp" />

<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="101dp"
android:layout_marginRight="101dp"
android:layout_marginBottom="383dp"
android:ems="10"
android:hint="Enter the text to be converted"
android:inputType="textPersonName"
android:text="" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="154dp"
android:layout_marginRight="154dp"
android:layout_marginBottom="256dp"
android:onClick="convert"
android:text="Convert" />
</RelativeLayout>

MainActivity.java
package com.example.texttospeech;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
TextToSpeech t1;
EditText e1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1 = findViewById(R.id.editText);
t1 = new TextToSpeech(getApplicationContext(), new
TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status!=TextToSpeech.ERROR){
t1.setLanguage(Locale.UK);
}
}
});
}
public void convert(View view){
String tospeak = e1.getText().toString();
t1.speak(tospeak,TextToSpeech.QUEUE_FLUSH,null);
}
}

OUTPUT:
Prgm : 05 Wallpaper Changing App
MainActivity.java
package com.example.wallapaper;

import androidx.appcompat.app.AppCompatActivity;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {


Button changewallpaper;
Timer mytimer;
Drawable drawable;
WallpaperManager wpm;
int prev = 1;

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

mytimer = new Timer();


wpm = WallpaperManager.getInstance(this);

changewallpaper = findViewById(R.id.button);
changewallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setWallpaper();
}
});
}

private void setWallpaper() {


mytimer.schedule(new TimerTask() {
@Override
public void run() {
if (prev == 1) {
drawable = getResources().getDrawable(R.drawable.one);
prev = 2;
} else if (prev == 2) {
drawable = getResources().getDrawable(R.drawable.two);
prev = 3;
} else if (prev == 3) {
drawable = getResources().getDrawable(R.drawable.three);
prev = 4;
} else if (prev == 4) {
drawable = getResources().getDrawable(R.drawable.four);
prev = 5;
} else if (prev == 5) {
drawable = getResources().getDrawable(R.drawable.five);
prev = 1;
}

Bitmap wallpaper = ((BitmapDrawable) drawable).getBitmap();


try {
wpm.setBitmap(wallpaper);
} catch (IOException e) {
e.printStackTrace();
}
}
}, 0, 30000);
}
}

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:background="@android:color/white">

<TextView
android:layout_width="395dp"
android:layout_height="54mm"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="3dp"
android:layout_marginBottom="178dp"
android:text="Wallpaper Changing Application"
android:textSize="38dp" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change Wallpaper"
android:layout_centerInParent="true"
android:padding="16dp"
android:background="@android:color/holo_blue_light"
android:textColor="@android:color/white"
android:textStyle="bold" />

</RelativeLayout>

OUTPUT: Wallpaper changes for every 30000ms


Program 06 : phone dialler
MainActivity.java
package com.example.phonekey;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


EditText phoneNumberEditText;
Button clearBtn, callBtn, saveBtn;

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

phoneNumberEditText = findViewById(R.id.phoneNumberEditText);
clearBtn = findViewById(R.id.clearBtn);
callBtn = findViewById(R.id.callBtn);
saveBtn = findViewById(R.id.saveBtn);

// Clear button functionality


clearBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
phoneNumberEditText.setText("");
}
});

// Call button functionality


callBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNumber = phoneNumberEditText.getText().toString();
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
startActivity(intent);
}
});
// Save button functionality
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNumber = phoneNumberEditText.getText().toString();
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, phoneNumber);
startActivity(intent);
}
});
}

// Method to append input number when number buttons are clicked


public void inputNumber(View v) {
Button btn = (Button) v;
String digit = btn.getText().toString();
String phoneNumber = phoneNumberEditText.getText().toString();
phoneNumberEditText.setText(phoneNumber + digit);
}
}

activitymain.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center">

<EditText
android:id="@+id/phoneNumberEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter phone number"
android:inputType="phone"
android:gravity="center"
android:textSize="18sp"
android:padding="10dp"
android:layout_marginBottom="16dp"/>

<!-- Clear, Call, and Save buttons -->


<GridLayout
android:layout_width="match_parent"
android:layout_height="222dp"
android:layout_marginBottom="16dp"
android:columnCount="3"
android:rowCount="4">

<!-- Buttons for number input -->


<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="1" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="2" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="3" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="4" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="5" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="6" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="7" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="8" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="9" />

<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnSpan="1" />

<Button
style="@style/ButtonNumber"
android:onClick="inputNumber"
android:text="0" />

<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnSpan="1" />

</GridLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">

<Button
android:id="@+id/clearBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear"
android:textSize="16sp" />

<Button
android:id="@+id/callBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Call"
android:textSize="16sp" />

<Button
android:id="@+id/saveBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Save"
android:textSize="16sp" />
</LinearLayout>

</LinearLayout>

In res/values/style.xml add this.


<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Define the ButtonNumber style -->
<style name="ButtonNumber">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:background">#FF9800</item>
<item name="android:padding">10dp</item>
<item name="android:textSize">18sp</item>
</style>
</resources>

Output:
Prg 07: Create two files of XML and JSON type with values for City_Name, Latitude, Longitude,
Temperature, and Humidity. Develop an application to create an activity with two buttons to parse
the XML and JSON files which when clicked should display the data in their respective layouts side
by side.

MainActivity.java

package com.example.jsonxmlparsing;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

public class MainActivity extends AppCompatActivity {

Button parseXmlBtn, parseJsonBtn;


TextView displayTextView;

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

parseJsonBtn = findViewById(R.id.parseJsonBtn);
parseXmlBtn = findViewById(R.id.parseXmlBtn);
displayTextView = findViewById(R.id.displayTextView);

// Parsing XML
parseXmlBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
InputStream is = getAssets().open("city.xml");
DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(is);

StringBuilder stringBuilder = new StringBuilder();


stringBuilder.append("XML Data");
stringBuilder.append("\n----------");

NodeList nodeList = document.getElementsByTagName("place");


for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
stringBuilder.append("\nName: ").append(getValue("name", element));
stringBuilder.append("\nLatitude: ").append(getValue("lat", element));
stringBuilder.append("\nLongitude: ").append(getValue("long", element));
stringBuilder.append("\nTemperature: ").append(getValue("temperature", element));
stringBuilder.append("\nHumidity: ").append(getValue("humidity", element));
stringBuilder.append("\n----------");
}
}
displayTextView.setText(stringBuilder.toString());

} catch (Exception e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "Error Parsing XML", Toast.LENGTH_SHORT).show();
}
}
});

// Parsing JSON
parseJsonBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String json;
StringBuilder stringBuilder = new StringBuilder();
try {
InputStream is = getAssets().open("city.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
json = new String(buffer, StandardCharsets.UTF_8);

JSONArray jsonArray = new JSONArray(json);


stringBuilder.append("JSON Data");
stringBuilder.append("\n----------");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
stringBuilder.append("\nName: ").append(jsonObject.getString("name"));
stringBuilder.append("\nLatitude: ").append(jsonObject.getString("lat"));
stringBuilder.append("\nLongitude: ").append(jsonObject.getString("long"));
stringBuilder.append("\nTemperature: ").append(jsonObject.getString("temperature"));
stringBuilder.append("\nHumidity: ").append(jsonObject.getString("humidity"));
stringBuilder.append("\n----------");
}
displayTextView.setText(stringBuilder.toString());
is.close();

} catch (IOException | JSONException e) {


e.printStackTrace();
Toast.makeText(MainActivity.this, "Error Parsing JSON Data",
Toast.LENGTH_SHORT).show();
}
}
});
}

// Helper method to extract XML element value


private String getValue(String tag, Element element) {
return element.getElementsByTagName(tag).item(0).getTextContent();
}
}

activitymain.xml

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity"
android:padding="16dp">

<TextView
android:id="@+id/titleTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PARSING XML AND JSON DATA"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#000"
android:layout_marginBottom="20dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

<Button
android:id="@+id/parseXmlBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Parse XML Data"
android:layout_marginBottom="20dp"
android:backgroundTint="@android:color/holo_blue_light"
app:layout_constraintTop_toBottomOf="@id/titleTextView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

<Button
android:id="@+id/parseJsonBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Parse JSON Data"
android:backgroundTint="@android:color/holo_green_light"
app:layout_constraintTop_toBottomOf="@id/parseXmlBtn"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

<TextView
android:id="@+id/displayTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginTop="20dp"
app:layout_constraintTop_toBottomOf="@id/parseJsonBtn"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="#000"
android:textSize="16sp" />

</androidx.constraintlayout.widget.ConstraintLayout>

City.xml
<?xml version="1.0" encoding="utf-8"?>
<places>
<place>
<name>Mysore</name>
<lat>12.295</lat>
<long>76.639</long>
<temperature>22</temperature>
<humidity>90%</humidity>
</place>
</places>

City.json
[
{
"name": "Mysore",
"lat": "12.295",
"long": "76.639",
"temperature": "22",
"humidity": "90%"
}
]

OUTPUT:

You might also like