I am doing a Android app where I want to show each travel's names with their contact numbers line by line. Here is the code:
package com.example.android;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
public class AppActivity extends Activity{
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i=new Intent(AppActivity.this, App2Activity.class);
i.putExtra("name1","Travels1");
i.putExtra("number1","7843564358");
i.putExtra("name2","Travels2");
i.putExtra("number2","7664764358");
i.putExtra("name3","Travels3");
i.putExtra("number3","8804764358");
startActivity(i);
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/travel_button" />
</LinearLayout>
package com.example.android;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class App2Activity extends Activity {
String name1,name2,name3;
Button btnOne, btnTwo, btnThree;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btnOne = (Button)findViewById(R.id.btnOne);
btnTwo = (Button)findViewById(R.id.btnTwo);
btnThree = (Button)findViewById(R.id.btnThree);
String number1=getIntent().getStringExtra("number1");
String number2=getIntent().getStringExtra("number2");
String number3=getIntent().getStringExtra("number3");
btnOne.setText(number1);
btnTwo.setText(number2);
btnThree.setText(number3);
btnOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnOne.getText()));
startActivity(callIntent);
}
});
btnTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnTwo.getText()));
startActivity(callIntent);
}
});
btnThree.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnThree.getText()));
startActivity(callIntent);
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Travel Details</string>
<string name="travel_button">Travels and Holidays</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".AppActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:name=".App2Activity" >
</activity>
</application>
</manifest>
When I click on "Travels and Holidays" button in the first activity, it goes to another activity and displays the following:
7843564358
7664764358
8804764358
When clicked on this number, it goes to call option of that number.
But what I want is: When I click on "Travels and Holidays" button in the first activity, it should go to another activity and should display the following:
Travels1 - 7843564358 Phone Icon
Travels2 - 7664764358 Phone Icon
Travels3 - 8804764358 Phone Icon
When I click on the Phone Icon of a particular travel, it should go to call option of that number.
How to fix this? Please help. Thanks in advance.
First change your main2 xml file like this
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextBox
android:id="@+id/txtOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Travels - 1" />
<TextBox
android:id="@+id/txtNum1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageButton
android:id="@+id/btnCall1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextBox
android:id="@+id/txtTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Travels - 2" />
<TextBox
android:id="@+id/txtNum2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageButton
android:id="@+id/btnCall2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextBox
android:id="@+id/txtThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Travels - 3" />
<TextBox
android:id="@+id/txtNum3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageButton
android:id="@+id/btnCall3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
</LinearLayout>
</LinearLayout>
and change you App2Activity class like this
String name1,name2,name3;
ImageButton btnOne, btnTwo, btnThree;
TextView txtNum1,txtNum2,txtNum3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btnOne = (ImageButton)findViewById(R.id.btnOne);
btnTwo = (ImageButton)findViewById(R.id.btnTwo);
btnThree = (ImageButton)findViewById(R.id.btnThree);
txtNum1=(TextView)findViewById(R.id.txtNum1);
txtNum2=(TextView)findViewById(R.id.txtNum2);
txtNum3=(TextView)findViewById(R.id.txtNum3);
String number1=getIntent().getStringExtra("number1");
String number2=getIntent().getStringExtra("number2");
String number3=getIntent().getStringExtra("number3");
txtNum1.setText(number1);
txtNum2.setText(number2);
txtNum3.setText(number3);
btnOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnOne.getText()));
startActivity(callIntent);
}
});
btnTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnTwo.getText()));
startActivity(callIntent);
}
});
btnThree.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:"+btnThree.getText()));
startActivity(callIntent);
}
});
}
But i must say that this is not a better way to do this... You can use custome ListView
. For study about listview link-1 , link-2
1.You have to replace main2.xml file's code with this one
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/llContainer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/travel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Travels1 - " />
<TextView
android:id="@+id/txtNumber1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dip"
android:layout_marginRight="20dip"
android:text="325235" />
<ImageButton
android:id="@+id/btnPhone1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/stat_sys_phone_call" />
</LinearLayout>
<LinearLayout
android:id="@+id/llContainer2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/travel2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Travels2 - " />
<TextView
android:id="@+id/txtNumber2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dip"
android:layout_marginRight="20dip"
android:text="455345" />
<ImageButton
android:id="@+id/btnPhone2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/stat_sys_phone_call" />
</LinearLayout>
<LinearLayout
android:id="@+id/llContainer3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/travel3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Travels3 - " />
<TextView
android:id="@+id/txtNumber3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dip"
android:layout_marginRight="20dip"
android:text="453532" />
<ImageButton
android:id="@+id/btnPhone3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/stat_sys_phone_call" />
</LinearLayout>
</LinearLayout>
Change App2Activity.java code as follows:
ImageButton btnPhoneOne, btnPhoneTwo, btnPhoneThree; TextView txtNum1, txtNum2, txtNum3;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); btnPhoneOne = (ImageButton) findViewById(R.id.btnPhone1); btnPhoneTwo = (ImageButton) findViewById(R.id.btnPhone2); btnPhoneThree = (ImageButton) findViewById(R.id.btnPhone3); txtNum1 = (TextView) findViewById(R.id.txtNumber1); txtNum2 = (TextView) findViewById(R.id.txtNumber2); txtNum3 = (TextView) findViewById(R.id.txtNumber3); String number1 = getIntent().getStringExtra("number1"); String number2 = getIntent().getStringExtra("number2"); String number3 = getIntent().getStringExtra("number3"); txtNum1.setText(number1); txtNum2.setText(number2); txtNum3.setText(number3); btnPhoneOne.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum1.getText())); startActivity(callIntent); } }); btnPhoneTwo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum2.getText())); startActivity(callIntent); } }); btnPhoneThree.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum3.getText())); startActivity(callIntent); } });
}
You can see image main2.xml screenshot
Use Image button And use an Phone icon Image in xml file.
like this:
<ImageButton
android:id="@+id/btnCall1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.