首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的java代码中选择xml文本[android]

如何在我的java代码中选择xml文本[android]
EN

Stack Overflow用户
提问于 2015-10-31 22:58:19
回答 1查看 100关注 0票数 0

在这个过程中,当我长时间按任意一个prof名称时,会弹出一个上下文菜单,该菜单进一步要求选择其中一个选项(为了更好地理解,请查看下面的内容)。

我有一个resc.xml文件,其中提到了详细的电子邮件,办公时间和电话号码。我想要做的是,当有人点击上下文菜单中的三个选项中的任何一个时,它应该显示一个祝酒词,给特定的教授提供办公时间的详细信息或电子邮件id,只要在上下文菜单中单击。

例如,如果有人长时间按下“大卫·希克斯博士”的名字上下文菜单会弹出,然后如果我点击“电子邮件id”,它应该显示来自resc.xml文件的大卫·希克斯博士电子邮件地址的祝酒词。

注意:显示所有教授姓名的主页的列表视图是从另一个xml文件'item_data.xml‘中获取的。

有人能帮我吗?

代码语言:javascript
复制
MainActivity.java

package com.example.tamukcompscfaculty;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class MainActivity extends ListActivity {

        private String[] Professors;
        String na;
        int position;

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

                 Professors = getResources().getStringArray(R.array.Professors);
                ArrayAdapter<String> ProgAdapter =  new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Professors);
                setListAdapter(ProgAdapter);
                registerForContextMenu(getListView());
        }

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
                if(v==getListView()){

                        MenuInflater menuInflater=getMenuInflater();
                        menu.setHeaderTitle(R.string.More);
                        menuInflater.inflate(R.menu.details, menu);

                        //get the position of row clicked
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
                position = info.position;
                        ss = Professors[position].toString(); // String ss is holding name of professor


                }
                super.onCreateContextMenu(menu, v, menuInfo);
        }

        @Override
        public boolean onContextItemSelected(MenuItem args) {
                na = args.toString(); // na is holding string value of the item clicked in context menu



                return super.onContextItemSelected(args);
        }


}

Strings.XML

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

        <string name="app_name">TamukCompScFaculty</string>
        <string name="action_settings">Settings</string>
        <string name="FacultyText"><u>Faculty Office Hours Details</u></string>
        <string name="Office_Hours">Check Office Hours</string>
        <string name="Email">Email Id</string>
        <string name="Phonenumber">Phone Number</string>
        <string name="More"><u>Click below to check the details</u></string>
        <string name="title_activity_start">StartActivity</string>

    </resources>


resc.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name = "resc">

            <item>Dr. David Hicks
                             <Email>david@tamuk.com</Email>
                             <Phonenumber>512-000-0000</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                 <item >Dr. Mohammad S. Khan
                                      <Email>khan@tamuk.com</Email>
                             <Phonenumber>512-111-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                 <item >Dr. Young Lee
                           <Email>lee@tamuk.com</Email>
                             <Phonenumber>512-222-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                 <item >Dr. Mais Nijim
                          <Email>Nijim@tamuk.com</Email>
                             <Phonenumber>512-333-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                 <item >Dr. Ashraf Yaseen
                          <Email>Yaseen@tamuk.com</Email>
                             <Phonenumber>512-444-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Ms. Jeong Yang
                               <Email>Yang@tamuk.com</Email>
                             <Phonenumber>512-555-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Dr. Abdelrahman Elleithy
                               <Email>Elleithy@tamuk.com</Email>
                             <Phonenumber>512-666-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Dr. Wei-Da Hao
                               <Email>Hao@tamuk.com</Email>
                             <Phonenumber>512-777-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Dr. Syed Iqbal Omar
                              <Email>Omar@tamuk.com</Email>
                             <Phonenumber>512-888-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Dr. Muhammad Aurangzeb
                              <Email>Aurangzeb@tamuk.com</Email>
                             <Phonenumber>512-999-1111</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

                <item >Dr. Gahangir Hossain
                               <Email>Hossain@tamuk.com</Email>
                             <Phonenumber>512-111-4444</Phonenumber>
                             <Office_Hours>Mon to fri 9am to 1pm</Office_Hours>
                 </item>

        </string-array> 
    </resources>

item_data.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name = "Professors">

                <item >Dr. David Hicks</item>
                   <item >Dr. Mohammad S. Khan</item>
            <item >Dr. Young Lee</item>
            <item >Dr. Mais Nijim</item>
            <item >Dr. Ashraf Yaseen</item>
                <item >Ms. Jeong Yang</item>
                <item >Dr. Abdelrahman Elleithy</item>
                <item >Dr. Wei-Da Hao</item>
                <item >Dr. Syed Iqbal Omar</item>
                <item >Dr. Muhammad Aurangzeb</item>
                <item >Dr. Gahangir Hossain</item>


        </string-array>    

    </resources>

activity_main.xml

    <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.tamukcompscfaculty.MainActivity" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/profs"
            android:layout_alignParentTop="true"
            android:layout_marginTop="33dp"
            android:text="@string/FacultyText"
            android:textColor="#000000"
            android:textSize="20sp"
            android:textStyle="bold|italic" />

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="-25dp" >

        </ListView>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="35dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_alignRight="@+id/textView1"
            android:scaleType="fitXY"
            android:src="@drawable/engineering" />

    </RelativeLayout>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-01 02:26:44

让我们以电子邮件为例。像这样定义字符串xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name = "Professors">
        <item >Dr. David Hicks</item>
        <item >Dr. Mohammad S. Khan</item>
        <item >Dr. Young Lee</item>
        <item >Dr. Mais Nijim</item>
        <item >Dr. Ashraf Yaseen</item>
        <item >Ms. Jeong Yang</item>
        <item >Dr. Abdelrahman Elleithy</item>
        <item >Dr. Wei-Da Hao</item>
        <item >Dr. Syed Iqbal Omar</item>
        <item >Dr. Muhammad Aurangzeb</item>
        <item >Dr. Gahangir Hossain</item>
    </string-array>

    <string-array name = "Emails">
        <item >david@tamuk.com</item>
        <item >khan@tamuk.com</item>
        <item >lee@tamuk.com</item>
        <item >Nijim@tamuk.com</item>
        <item >Yaseen@tamuk.com</item>
        <item >Yang@tamuk.com</item>
        <item >Elleithy@tamuk.com</item>
        <item >Hao@tamuk.com</item>
        <item >Omar@tamuk.com</item>
        <item >Aurangzeb@tamuk.com</item>
        <item >Hossain@tamuk.com</item>
    </string-array>

</resources>

在JAVA代码中,

代码语言:javascript
复制
    @Override
    public boolean onContextItemSelected(MenuItem menuItem) {
            switch(menuItem.getItemId()) {
                case R.id.email:
                    String email = getResources().getStringArray(R.array.Emails)[position];
                    break;
                case R.id.phone_number:
                    break;
                case R.id.office_hours:
                    break;
            }
            return true;
    }

R.id.email、R.id.phone_number、R.id.office_hours是您在R.menu.details中指定的in。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33457517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档