findViewById中的错误

时间:2013-02-19 18:00:41

标签: android

嗨,我正在做一个android gps教程,我收到一个我不明白的错误(我对android dev很新)。我在

得到了错误
position = (WebView) findViewById(R.id.activity_main);

activity_main似乎是问题所在。有人可以解释问题是什么吗?感谢。

import android.R;
import android.app.Activity;
import android.location.Location;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;

public class GPSActivity extends Activity
{
    WebView position;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_item);

        position = (WebView) findViewById(R.id.activity_main);
        position.getSettings().setJavaScriptEnabled(true);

    }

    public void onLocationChanged(Location loc)
    {
        String Text ="My current location is: " + "Latitud="
                + loc.getLatitude() + "Longitud =" + loc.getLongitude();
        Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_LONG).show();

        String url ="http://maps.google.com/staticmap?center="
                + loc.getLatitude() +loc.getLatitude()
                + "&zoom=14&size=512x512&maptype=mobile/&markers="
                + loc.getLatitude() + loc.getLongitude();
        position.loadUrl(url);

    }
}

错误是活动主要无法解决或者不是字段,我认为id在activity_main但是如果我错了就纠正我,这里是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>

6 个答案:

答案 0 :(得分:6)

将其更改为

position = (WebView) findViewById(R.id.webview);

还要确保设置正确的布局

setContentView(R.layout.activity_main);

原因是WebView的ID不是R.id.activity_main。在您的情况下,它是R.id.webview。 ID值通过android:id="@+id/webview

在XML布局中设置

另一个可能的问题。同时删除import android.R;

答案 1 :(得分:2)

这是它无法找到您的资源的原因:

import android.R;

它希望在预编译的android.R中找到你的R相关内容。您需要删除该行并导入包的R而不是预编译的R。

解决方案

删除import android.R行。

还要确保您的项目编译并在构建过程中生成R.java。

答案 2 :(得分:1)

删除导入android.R后

position = (WebView) findViewById(R.id.webview);

它正在android.R.id中寻找webview,但它位于your_package_name.R.id。

答案 3 :(得分:0)

删除 import android.R;

您可能会发现无法识别的错误。这是因为您使用的是默认包而不是项目包。您可以通过导入.R来解决它 所以如果你的包名是com.GPS 然后导入com.GPS.R

答案 4 :(得分:0)

    View v=inflater.inflate(R.layout.fragment_two, container, false);
    WebView   mWebView = (WebView) v.findViewById(R.id.webView2);

我做到了:) 我能够

答案 5 :(得分:0)

我与findViewByID(R.id.activity_main);有同样的问题,我花了几天时间尝试在网上看到的所有解决方案。

我使用以下方法解决了问题:

我转到XML文档并为我的布局命名(ID):activity_main

这行代码在我的XML文档的TextView中弹出:android:id="@+id/activity_main"

我立即停止了activity_main问题。

注意:我也没有import.android.R statement