简体   繁体   English

如何在Android代码的第二个活动的每行中插入电话图标

[英]How to insert Phone icon in every line in second Activity in Android code

I am doing a Android app where I want to show each travel's names with their contact numbers line by line. 我正在做一个Android应用,我想在其中逐行显示每个旅行的姓名及其联系电话。 Here is the code: 这是代码:

AppActivity.java AppActivity.java

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);
            }
        });   
    }
}

main.xml main.xml中

<?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>

App2Activity.java App2Activity.java

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);
            }
        });
    }
}

main2.xml main2.xml

<?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>

strings.xml strings.xml中

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

<resources>

    <string name="app_name">Travel Details</string>
    <string name="travel_button">Travels and Holidays</string>

</resources>

AndroidManifest.xml AndroidManifest.xml中

<?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 首先像这样更改您的main2 xml文件

<?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 并像这样更改您的App2Activity类

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 . 但是我必须说,这不是一种更好的方法...您可以使用custome ListView For study about listview link-1 , link-2 为了研究listview link-1link-2

1.You have to replace main2.xml file's code with this one 1.您必须用这一个替换main2.xml文件的代码

<?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>
  1. Change App2Activity.java code as follows: 更改App2Activity.java代码,如下所示:

    ImageButton btnPhoneOne, btnPhoneTwo, btnPhoneThree; ImageButton btnPhoneOne,btnPhoneTwo,btnPhoneThree; TextView txtNum1, txtNum2, txtNum3; 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); } }); 

    } }

  2. You can see image main2.xml screenshot 您可以看到图像main2.xml的屏幕截图 在此处输入图片说明

Use Image button And use an Phone icon Image in xml file. 使用图像按钮,然后在xml文件中使用电话图标图像。

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" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM