Android 在setContentView上找不到获取源

Android 在setContentView上找不到获取源,android,Android,我在此行的setContentView上找到一个未找到的源: setContentView(R.layout.webview); 关于McClick动作。 我有2个xml文件。 一个是列表项。看起来是这样的: list_item.xml 当用户单击列表中的项目时,我正在尝试这样做,它只会加载它。 我的xml是: webview.xml <?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="ht

我在此行的setContentView上找到一个未找到的源:

  setContentView(R.layout.webview);
关于McClick动作。 我有2个xml文件。 一个是列表项。看起来是这样的:

list_item.xml


当用户单击列表中的项目时,我正在尝试这样做,它只会加载它。 我的xml是: webview.xml

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>   

下面是它的完整代码。在setContentView之前,所有这些都非常有效:

public class NewsActivity  extends ListActivity {
WebView mWebView;
 public ReadXML ReadXML=new ReadXML();
 public  ArrayList<String> ynetList =new ArrayList<String>();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

for(int i=0;i<ReadXML.hadashotListItems.size();i++)
   ynetList.add(ReadXML.hadashotListItems.get(i).title+"\n"+ReadXML.hadashotListItems.get(i).pubDate);

      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, ynetList));

      View v=getListView() ;

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);

      lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
          // When clicked, show a toast with the TextView text
        String s=   ReadXML.hadashotListItems.get(position).link;

        setContentView(R.layout.webview);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl(s);



        }
      }
      );
    }}

公共类NewsActivity扩展了ListActivity{
网络视图;
public ReadXML ReadXML=new ReadXML();
public ArrayList ynetList=new ArrayList();
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

对于(int i=0;iA
ListActivity
需要一个ID
android.R.ID.list
ListView
。在创建活动时,一切都很好,因为您没有指定自己的内容视图,因此使用的是只包含列表的默认内容视图

现在,在您的
setContentView
调用中,您的代码实际上是在说“现在我希望整个屏幕成为一个大的网络视图”。这样做,您违反了始终拥有
ListView
ListActivity
要求

您可以创建一个布局文件,其中包含ID为android.R.ID.list的
WebView
ListView
,并使用onclick切换其可见性,或者听硬件后退按钮切换回来。但我认为只需让单击侦听器启动一个新活动,这将是一种更简洁的方法,仅包含
WebView

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       // When clicked, show a toast with the TextView text
       String s = ReadXML.hadashotListItems.get(position).link;

       Intent intent = new Intent(NewsActivity.this, WebActivity.class);
       intent.putExtra("url", s);

       startActivity(intent);

    }
}
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//单击后,显示带有文本视图文本的祝酒词
字符串s=ReadXML.hadashotListItems.get(position.link);
意向意向=新意向(NewsActivity.this、WebActivity.class);
intent.putExtra(“url”,s);
星触觉(意向);
}
}

然后,您可以将新的
WebActivity
类设置为
R.layout.webview
作为其内容视图。按下hardware back按钮将自动完成该活动,并将您带回您所在的列表。

A
ListActivity
需要一个ID为
android.R.ID.list
列表当您创建活动时,一切都很好,因为您没有指定自己的内容视图,因此使用的是仅包含列表的默认内容视图

现在,在您的
setContentView
调用中,您的代码实际上是在说“现在我希望整个屏幕成为一个大的网络视图”。这样做,您违反了始终拥有
ListView
ListActivity
要求

您可以创建一个布局文件,其中包含ID为android.R.ID.list的
WebView
ListView
,并使用onclick切换其可见性,或者听硬件后退按钮切换回来。但我认为只需让单击侦听器启动一个新活动,这将是一种更简洁的方法,仅包含
WebView

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       // When clicked, show a toast with the TextView text
       String s = ReadXML.hadashotListItems.get(position).link;

       Intent intent = new Intent(NewsActivity.this, WebActivity.class);
       intent.putExtra("url", s);

       startActivity(intent);

    }
}
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//单击后,显示带有文本视图文本的祝酒词
字符串s=ReadXML.hadashotListItems.get(position.link);
意向意向=新意向(NewsActivity.this、WebActivity.class);
intent.putExtra(“url”,s);
星触觉(意向);
}
}

然后,您可以让新的
WebActivity
类将
R.layout.webview
设置为其内容视图。按“硬件后退”按钮将自动完成该活动,并将您带回您所在的列表。

您不想创建一个新的活动来加载url,而不仅仅是更改url的整个布局吗当前的活动?似乎是正面的

问候,,
Stéphane

难道你不想创建一个新的活动来加载你的url,而不是改变你当前活动的整个布局吗?这似乎是肯定的

问候,,
Stéphane

我有点困惑。你能给我一个代码来解决这个问题吗。
公共类NewsActivity扩展了活动
@Vitaly:嗯,我意识到我可能误解了你之前试图做的事情,但总的问题还是一样的(缺少列表视图)。我已更新了我的答案,以更好地反映您试图实现的目标。我按您所说的做了,但在以下位置找不到错误源:Intent Intent Intent=newintent(NewsActivity.this,WebActivity.class);我创建了一个类public class WebActivity extensed Activity{@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.webview);webview wv;wv=(webview)findViewById(R.id.webview);wv.loadUrl(“);}}我有点困惑。你能给我解决这个问题的代码吗。
公共类NewsActivity扩展了活动
@Vitaly:嗯,我意识到我可能误解了你之前的想法,但一般问题还是一样的(缺少列表视图)。我已更新了我的答案,以更好地反映您试图实现的目标。我按您所说的做了,但在以下位置找不到错误源:Intent Intent Intent=newintent(NewsActivity.this,WebActivity.class);我创建了一个类public class WebActivity extensed Activity{@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.webview);webview wv;wv=(webview)findViewById(R.id.webview);wv.loadUrl(“);}}}我做了另一个操作,但找不到源代码请向Davi查看我的评论