在这个过程中,当我长时间按任意一个prof名称时,会弹出一个上下文菜单,该菜单进一步要求选择其中一个选项(为了更好地理解,请查看下面的内容)。
我有一个resc.xml文件,其中提到了详细的电子邮件,办公时间和电话号码。我想要做的是,当有人点击上下文菜单中的三个选项中的任何一个时,它应该显示一个祝酒词,给特定的教授提供办公时间的详细信息或电子邮件id,只要在上下文菜单中单击。
例如,如果有人长时间按下“大卫·希克斯博士”的名字上下文菜单会弹出,然后如果我点击“电子邮件id”,它应该显示来自resc.xml文件的大卫·希克斯博士电子邮件地址的祝酒词。
注意:显示所有教授姓名的主页的列表视图是从另一个xml文件'item_data.xml‘中获取的。
有人能帮我吗?
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>


发布于 2015-11-01 02:26:44
让我们以电子邮件为例。像这样定义字符串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>
<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代码中,
@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。
https://stackoverflow.com/questions/33457517
复制相似问题