标签: findviewbyid

片段中的findViewById

我试图在片段中创建一个ImageView,它将引用我在片段的XML中创建的ImageView元素.但是,该findViewById方法仅在扩展Activity类时才有效.无论如何,我还可以在片段中使用它吗?

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ImageView imageView = (ImageView)findViewById(R.id.my_image);
        return inflater.inflate(R.layout.testclassfragment, container, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

findViewById方法有一个错误,表明该方法是未定义的.

android android-imageview android-fragments findviewbyid

975
推荐指数
23
解决办法
56万
查看次数

如何以编程方式为视图分配ID?

在XML文件中,我们可以为视图分配ID android:id="@+id/something",然后调用findViewById(),但在以编程方式创建视图时,如何分配ID?

我认为setId()与默认分配不同.setId()是额外的.

任何人都可以纠正我吗?

android android-view findviewbyid android-resources android-identifiers

195
推荐指数
3
解决办法
14万
查看次数

无需强制转换findViewById的结果?

最近我发现AndroidStudio提醒我删除一些类转换.我记得在过去,我们必须抛出findViewById的结果,但现在没有必要.

findViewById的结果仍然是View,所以我想知道为什么我们不需要转换类?

我找不到任何提到的文件,任何人都可以找到任何文件吗?

android casting findviewbyid

144
推荐指数
3
解决办法
4万
查看次数

空指针异常 - findViewById()

任何人都可以帮我找出这个程序可能存在的问题.在该onCreate()方法中,findViewById()对所有id返回null,这会在以后导致空指针异常.我无法弄清楚为什么findViewById()找不到这个视图.有什么建议?

这是主要代码:

public class MainActivity extends Activity {

    ViewPager pager;
    MyPagerAdapter adapter;
    LinearLayout layout1, layout2, layout3;

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

        layout1 = (LinearLayout) findViewById(R.id.first_View);
        layout2 = (LinearLayout) findViewById(R.id.second_View);
        layout3 = (LinearLayout) findViewById(R.id.third_View);

        adapter = new MyPagerAdapter();
        pager = (ViewPager) findViewById(R.id.main_pager);
        pager.setAdapter(adapter);
    }

    private class MyPagerAdapter extends PagerAdapter
    {

        @Override
        public int getCount() { 
            return 3;
        }

        @Override
        public Object instantiateItem(ViewGroup collection, int position) {

            LinearLayout l = null;

            if (position …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception oncreate findviewbyid

49
推荐指数
1
解决办法
5万
查看次数

在一个不扩展android中的Activity的类中使用findviewbyid

我有一个当前正在扩展Activity的类,我有findViewById,ArrayAdapter等方法.我想将它变成一个独立的类,但所有上述方法都是未定义的.问题是什么?不应该导入类足够吗?例如,我为findViewById导入android.view.View但它仍然没有区别.请指教.

android class android-activity findviewbyid

38
推荐指数
3
解决办法
5万
查看次数

从Activity的onCreate访问片段视图

我在我的第一应用为Android的过程中,我有一个Fragment是被添加到我ActivityActivityonCreate()方法.我现在面临的问题是,我无法找到任何的内部包含的意见,FragmentActivityonCreate()方法.

其他线程建议这是因为Fragment尚未充气,因此findViewById()将为包含在其中的任何视图返回null Fragment.

这就是我的意思:

活动:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    System.out.println("activity onCreate");
    setContentView(R.layout.activity_main);

    if (savedInstanceState != null) {
        return;
    }

    initialiseUI(); // Fragment added to Activity

    System.out.println("end of activity onCreate");
}
Run Code Online (Sandbox Code Playgroud)

分段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) {
System.out.println("fragment onCreateView");
    return inflater.inflate(R.layout.event_log, container, false);
}
Run Code Online (Sandbox Code Playgroud)

这打印结果:

activity onCreate活动结束onCreate片段onCreateView

因为这个命令,任何试图访问的意见FragmentActivityonCreate()方法(使用 …

android fragment oncreate findviewbyid

28
推荐指数
1
解决办法
3万
查看次数

findViewById()上的NoSuchFieldError

我想合并两个android项目,一个是Main,另一个是Library.但是我在这方面遇到了一些麻烦:

Button modificarC;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_menu_calificaciones);
modificarC = (Button) findViewById(R.id.btn_aseso); //HERE
Run Code Online (Sandbox Code Playgroud)

我尝试了Project Clean ...我的依赖项上也有android-support-v4.jar

这是我的追踪:

04-24 19:39:52.568: E/AndroidRuntime(9486): FATAL EXCEPTION: main
04-24 19:39:52.568: E/AndroidRuntime(9486): java.lang.NoSuchFieldError: com.utez.sistemas.sam.R$id.btn_aseso
04-24 19:39:52.568: E/AndroidRuntime(9486):     at com.utez.sistemas.sam.calificaciones.CalificacionesActivity.onCreate(CalificacionesActivity.java:67)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.Activity.performCreate(Activity.java:4465)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.os.Looper.loop(Looper.java:137)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at …
Run Code Online (Sandbox Code Playgroud)

android runtime-error findviewbyid

28
推荐指数
2
解决办法
9317
查看次数

片段内的findViewById

有没有办法在片段范围内通过id查找视图?我正在使用一系列片段来呈现专门的列表.片段从布局加载,因此它们的小部件都具有相同的ID.

我想我可以找到一种方法,在创建期间(或之后)为每个小部件提供自定义ID.但是,如果我能以某种方式将findViewById限制在片段的范围内,那将会更好.

android android-fragments findviewbyid

24
推荐指数
3
解决办法
6万
查看次数

无法解析方法'findViewById(int)'

我遇到了麻烦,findViewByid但我找不到问题所在.

这是我的FirstFragment班级代码:

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;

import java.util.ArrayList;
import java.util.List;


public class FirstFragment extends Fragment {
public static final String TAG = "first";

private WebView mWebView;
ProgressBar progressBar;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    mWebView = (WebView) findViewById(R.id.activity_main_webview);

    progressBar = (ProgressBar) findViewById(R.id.progressBar1);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.google.com");
 }

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, …
Run Code Online (Sandbox Code Playgroud)

android findviewbyid

24
推荐指数
3
解决办法
8万
查看次数

尝试在空对象引用上调用虚方法'android.view.Window $ Callback android.view.Window.getCallback()'

当我SplashActivity打开LoginActivity我的应用程序崩溃.

以下是我的SplashActivity.java:

package com.example.android.appName;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import java.util.Timer;
import java.util.TimerTask;

public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
                startActivity(intent);
                finish();
            }
        }, 1500);
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的LoginActivity.java:

package com.example.android.appName;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View; …
Run Code Online (Sandbox Code Playgroud)

java android findviewbyid

23
推荐指数
1
解决办法
6万
查看次数