我正在尝试从片段 xml 中获取 id 所以这里是错误代码“无法解析 findViewById 方法”
有没有我可以findViewById在 Fragment 中使用的?
public class Slide_Teacher_Add extends Fragment implements View.OnClickListener {
private EditText teacher_id_number;
private EditText teacher_fullname;
private EditText teacher_lesson;
private EditText teacher_contact;
private Button btn_add_teacher;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_slide__teacher_add,container,false);
return v;
teacher_id_number = (EditText) findViewById(R.id.teacher_id_number);
teacher_fullname = (EditText) findViewById(R.id.teacher_fullname);
teacher_lesson = (EditText) findViewById(R.id.teacher_lesson);
teacher_contact = (EditText) findViewById(R.id.teacher_contact);
btn_add_teacher = (Button) findViewById(R.id.btn_add_teacher);
btn_add_teacher.setOnClickListener(this);
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,通过MediaPlayer播放无线电作为服务.是否可以在Service类中使用MediaController?问题是我可以使用findViewById.
我试着让我的LinearLayout进入onPrepeared方法......
public class RadioPlayer extends Service implements OnPreparedListener, MediaController.MediaPlayerControl {
@Override
public void onCreate() {
super.onCreate();
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(this);
mediaController = new MediaController(this, false); mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
}
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
mediaController.setMediaPlayer(this);
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.main, (ViewGroup) findViewById(R.id.main_program_view));
mediaController.setAnchorView(layout);
}
}
Run Code Online (Sandbox Code Playgroud)
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_program_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >
<TextView
android:id="@+id/now_playing_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:text="@string/na_antenie"
android:textColor="#333333" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我对编程非常陌生并且正在教自己,如果我的代码很丑,那就很抱歉.
我正在尝试创建一个菜单,如屏幕,左,右箭头按钮,可以更改显示的图片.我想这样做,当你在第一张图像上左箭头消失时,当显示最后一张图像时,右箭头消失了.
我试图以很多不同的方式做到这一点,但总是需要一个无法解决的变量.在发布的代码中,错误是在switch语句中,而我尝试对其进行编码的其他方法是未解决的变量错误将在onClickListener中.
你不必为我编码,只是让我知道我缺少什么概念,我会研究它.
谢谢
package com.mystuff.mymenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
public class PictureMenu extends Activity implements OnClickListener{
int setView = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.picture_menu);
menuSet(setView);
ImageButton right = (ImageButton) findViewById(R.id.rightButton);
ImageButton left = (ImageButton) findViewById(R.id.leftButton);
right.setOnClickListener(this);
left.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.rightButton){
setView ++;
menuSet(setView);
if(v.getId() == R.id.rightButton){
setView ++;
menuSet(setView);
}
}
}
private void menuSet(int setView) {
ImageView picture1 …Run Code Online (Sandbox Code Playgroud) 我正在做我在Android平台上通过加速度计传感器获取数据的项目.我在最后3行代码中有错误代码.确切的错误是findViewById不是用于获取数据片段.那么,我如何在Fragment中使用findviewbyId来获取数据加速计传感器?非常感谢答案:)
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorManager;
import android.hardware.SensorEventListener;
public class GetDataFragment extends Fragment implements SensorEventListener {
//definisi variabel-variabel
//Sensor accelerometer;
private Activity parent;
TextView koordinatX;
TextView koordinatY;
TextView koordinatZ;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.get_data, container, false);
}
private SensorManager sensorManager;
private Sensor sensor;
//TextView koordinatX; …Run Code Online (Sandbox Code Playgroud) (首先,我知道这个问题已被多次询问,但我没有找到适用的答案)
我有一个片段创建如下:
inflater.inflate ( R.layout.fragment_task_ongoing, container, false );
Run Code Online (Sandbox Code Playgroud)
我想要的是在FragmentActivity中使用findFragmentById,如下所示:
TaskActiveFragment f = ( TaskActiveFragment ) getSupportFragmentManager ().findFragmentById ( R.id.fragment_task_ongoing );
Run Code Online (Sandbox Code Playgroud)
不幸的是,这返回null.明显的原因是用作参数的id是RelativeLayout被膨胀的id,而不是Fragment.布局的第一行:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_task_ongoing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
Run Code Online (Sandbox Code Playgroud)
那么,我如何找出片段的 ID ?如果它没有ID,我该如何给它?编程方式?XML?
编辑:我的片段被添加到FragmentStatePagerAdapter,然后将其添加到ViewPager.
为什么我们总是要抛出方法返回的值findViewById(id)?该方法已经返回一个视图,正如我在google参考中看到的那样:
http://developer.android.com/reference/android/view/View.html#findViewById(int)
然后是否可以从视图中分离出另一个东西?例如,执行以下操作:
ImageView image = (ImageView) findViewById(R.id.image) ?
Run Code Online (Sandbox Code Playgroud) 为什么NullPointerException我ViewHolder的bindItems()方法中会出现 a ?
我已经突出显示了我获得NullPointerException. 该blogpost_authorID存在,因为你可以在XML中看到的,所以这里有什么问题吗?findViewById<TextView>(R.id.blogpost_author)返回空值如何?
Adapter和ViewHolder代码:
class BlogPostAdapter(val blogList: ArrayList<BlogPost>) : RecyclerView.Adapter<BlogPostAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) : BlogPostAdapter.ViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.blog_post_list, parent, false)
return ViewHolder(v)
}
override fun getItemCount(): Int {
return blogList.size
}
override fun onBindViewHolder(holder: BlogPostAdapter.ViewHolder, position: Int) {
holder.bindItems(blogList[position])
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bindItems(blogPost: BlogPost) {
val blogPostAuthor = itemView.findViewById<TextView>(R.id.blogpost_author) // THIS LINE …Run Code Online (Sandbox Code Playgroud) 我有一个 Adroid Activity,我想引入一个自定义列表视图。这是我的 onCreate() 活动方法。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LoadListView();
ListView lvw = (ListView)findViewById(android.R.id.list);
lvw.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// selected item
String element = ((TextView) view).getText().toString();
// Launching new Activity on selecting single List Item
Intent i = new Intent(getApplicationContext(), AddEntryActivity.class);
// sending data to new activity
i.putExtra("entryToEdit", element);
long idToEdit = Long.parseLong(hEntries.get(position).toString());
i.putExtra("idToEdit", idToEdit);
startActivity(i);
}
});
DbAccess oDb = new DbAccess(this);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,调用 LoadListView() 方法来加载列表视图项: …
这是我的代码
活动:
@RoboGuice
@EActivity(R.layout.result_page)
public class ResultActivity extends SherlockListActivity implements ActionBar.OnNavigationListener{
@ViewById TextView src;
@ViewById TextView dest;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(src==null || dest==null)
Toast.makeText(this, "@ViewById does not work", Toast.LENGTH_SHORT).show();
//More Code here
}
}
Run Code Online (Sandbox Code Playgroud)
布局的一部分: - 注意:有许多嵌套布局 - 仅显示布局文件的一部分
<RelativeLayout
android:id="@+id/topRight"
android:layout_toRightOf="@id/topLeft"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="0.8">
<TextView
android:id="@+id/src"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#3399FF"
android:maxLines="1"
android:paddingLeft="8dp"
android:textSize="16dp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/bottomRight"
android:layout_toRightOf="@id/bottomLeft"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="0.8">
<TextView
android:id="@+id/dest"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:maxLines="1"
android:textColor="#3399FF"
android:paddingBottom="10dp"
android:textSize="16dp"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我想在TextViews上做一个setText().我想知道我实现接口(我需要的)是否会使@ViewById成为故障.还是我错过了什么?
在我的应用程序中,我有一个片段实例ActivityFragment,它在addActivity按下按钮 时动态添加。有一个delete_button在每个ActivityFragment和我树立了一个onClickListener的内这个按钮ActivityFragment类。当delete_button按下 时,我想从 onClick 方法内部删除片段。当我创建ActivityFragment对象并将其添加到片段类之外的方法中的活动时,我将如何执行此操作?我应该使用什么领域.remove()?
请注意,delete_button应该只删除它所在片段的实例。
这是我MainActivity.java的ActivityFragment班级。该addActivity按钮是在底部:
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public static class ActivityFragment extends Fragment {
// @Nullable is used because the method may return …Run Code Online (Sandbox Code Playgroud) android ×10
findviewbyid ×10
fragment ×2
eclipse ×1
java ×1
kotlin ×1
media-player ×1
service ×1
variables ×1