我正在尝试创建一个我正在构建的应用程序从主要活动中获取搜索词,返回结果,然后使结果可以被点击,以便可以从每个结果中查看详细信息.我这样做是通过使用MainActivity,ResultsActivity和PlaceActivity,然后是ListFragmentClickable(扩展ListFragment).如果手机朝向纵向模式,则结果列表应该是可见的,只有在单击结果时才会查看详细信息.如果手机是横向的,则在选择项目时,应在列表右侧弹出详细信息窗口.
在运行时,我收到一个错误,上面写着"错误膨胀类片段".我不知道是什么导致它,我很乐意帮助摆脱它.
我的ListFragmentClickables由我的ResultsActivity调用,它位于:
public class ResultsActivity extends FragmentActivity implements ListFragmentClickable.OnItemSelectedListener{
private ArrayAdapter<String> mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results_view);
//Receive searchTerm from MainActivity
Intent intent = getIntent();
String searchTerm = intent.getStringExtra(MainActivity.SEARCH_TERM);
mAdapter = new ArrayAdapter<String>(this, R.layout.item_label_list);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
FactualResponderFragment responder = (FactualResponderFragment) fm.findFragmentByTag("RESTResponder");
if (responder == null) {
responder = new FactualResponderFragment();
ft.add(responder, "RESTResponder");
}
Bundle bundle = new Bundle();
bundle.putString("search_term", searchTerm);
responder.setArguments(bundle);
ft.commit();
}
public ArrayAdapter<String> getArrayAdapter() {
return mAdapter;
} …Run Code Online (Sandbox Code Playgroud) 试图在我正在构建的一个活动中组合一个MapFragment,但是在将它全部用于工作方面遇到了一些麻烦.我知道Maps api和Play服务都安装正确,因为我做了测试教程,一切正常.
按照这里的文档,我遇到了以下问题:在我的setUpMapIfNeeded方法中,我可以使用getFragmentManager()或getSupportFragmentManager().当我使用getFragmentManager()它时,Eclipse很酷,但是当我运行时,我得到一个NoSuchMethodError说法,该方法是未定义的.当我选择时getSupportFragmentManager(),Eclipse不喜欢它并且给我错误"无法从Fragment转换为MapFragment".那是什么交易?有什么建议?
private void setUpMapIfNeeded() {
//Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = ((MapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
if (mMap != null) {
//do things to the map
mMap.addMarker(new MarkerOptions().position(LOCATION).title(EXTRA_URL));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LOCATION,15));
mMap.getUiSettings().setZoomControlsEnabled(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我能提供任何其他代码,请告诉我,我很乐意快速发布.
我目前正在尝试通过REST API调用获取数据,解析它以获取我需要的信息,然后将该信息传递给新活动.我正在使用来自loopj.com的异步HTTP客户端作为REST客户端,然后分别使用以下代码用于我onClick和onCreate当前和未来的活动.
Eclipse没有为我的任何代码传递任何错误,但是当我尝试在模拟器中运行时,在新活动/视图打开时我什么也得不到(即空白屏幕).我试图在我的REST CLIENT中使用不同的URL进行编码,但我仍然没有看到任何内容.我甚至把API调用的方程在注释掉的try/catch onClick并改变venueName在bundle.putString("VENUE_NAME", venueName);给searchTerm.仍然,新视图出现但没有显示任何内容.没有通过什么,或者我忘记了第二项活动是venueName什么?
public void onClick(View view) {
Intent i = new Intent(this, ResultsView.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String searchTerm = editText.getText().toString();
//call the getFactualResults method
try {
getFactualResults(searchTerm);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Create the bundle
Bundle bundle = new Bundle();
//Add your data from getFactualResults method to bundle
bundle.putString("VENUE_NAME", venueName);
//Add the bundle to …Run Code Online (Sandbox Code Playgroud) 现在我有一个应用程序搜索并返回ListFragment中的项目.我希望能够使每个ListFragment可单击,这样当单击它时,新活动将开始使用以下内容:
public void onListItemClick(ListView listView, View view, int position, long id) {
Intent i = new Intent(this, PlaceView.class);
startActivity(i);
//eventually data from the List will be passed to the new Activity...
}
Run Code Online (Sandbox Code Playgroud)
启动我需要点击的ListFragment的类如下:
public class ResultsView extends FragmentActivity {
private ArrayAdapter<String> mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results_view);
//Receive searchTerm from MainActivity
Intent intent = getIntent();
String searchTerm = intent.getStringExtra(MainActivity.SEARCH_TERM);
mAdapter = new ArrayAdapter<String>(this, R.layout.item_label_list);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ListFragment list = new ListFragment(); …Run Code Online (Sandbox Code Playgroud) 我需要能够在应用程序中为TextView创建链接,但链接指向的实际URL需要动态添加.
通过SO的研究,我发现了以下代码:
textView.setText(Html.fromHtml(
"<b>text3:</b> Text with a " +
"<a href=\"http://www.google.com\">link</a> " +
"created in the Java source code using HTML."));
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
据称这将在TextView中设置一个链接,就像在HTML中一样.这正是我需要做的,但我需要URL是动态的,基于将传递给的字符串变量setText().我该如何轻松地做到这一点?
澄清:我想显示"网站"这个词是一个链接,我需要根据将用户带到该视图的特定路径动态更新该链接指向的URL.
谢谢!
编辑:这是更新的代码:
String linkedText = "<b>text3:</b> Text with a " +
String.format("<a href=\"%s\">link</a> ", WEB) +
"created in the Java source code using HTML.";
web.setText(Html.fromHtml(linkedText));
web.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
这是TextView的XML:
<TextView
android:id="@+id/vWeb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/vPhone"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/webIcon"
android:paddingLeft="1dp"
android:autoLink="web"
android:textIsSelectable="true" />
Run Code Online (Sandbox Code Playgroud) 我需要将String值转换为LatLng值,以便在Android应用中的GoogleMaps片段中使用.字符串值可能以"-45.654765,65.432892"的形式出现.
我尝试了两种不同的方法,但都导致了错误.首先,我尝试使用split()并将结果放入String [],然后使用parseDouble()访问每个,如下所示:
String[] geo = GEO.split(",");
double lati = Double.parseDouble(geo[0]);
double lngi = Double.parseDouble(geo[1]);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)
这产生了一个ArrayIndexOutOfBoundsException由double lati = Double.parseDouble(geo[0]);.我不确定为什么.
我也尝试过使用StringTokenizer,如下所示:
StringTokenizer tokens = new StringTokenizer(GEO, ",");
String lat = tokens.nextToken();
String lng = tokens.nextToken();
double lati = Double.parseDouble(lat);
double lngi = Double.parseDouble(lng);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)
这引出了一个NoSuchElementException指向String lng = tokens.nextToken();.
在这两种情况下,我正在处理的字符串是GEO,public static final并通过intent从另一个活动传递,目前它只是硬编码的"43.75,-70.15".
LOCATION是public static和是一个初始化为的LatLng变量null. …