标签: android-fragments

Runnable完全不在片段内运行

我正在尝试将SeekBar连接到片段中的MediaPlayer,但runnable根本没有运行.我在其中放了一个log.i来查看它是否运行但根本没有任何反应.

我将Handler声明为全局变量:

Handler seekHandler;
SeekBar sBar;
Run Code Online (Sandbox Code Playgroud)

然后在onCreateView上:

seekHandler = new Handler();
sBar = (SeekBar) v.findViewById(R.id.seekBar1);
Run Code Online (Sandbox Code Playgroud)

可运行:

Runnable run = new Runnable() {

    @Override
    public void run() {
        sBar.setMax(mp.getDuration());
        sBar.setProgress(mp.getCurrentPosition());
        Log.i("TAG", "I'm running");
        seekHandler.postDelayed(this, 25);
    }
};
Run Code Online (Sandbox Code Playgroud)

mp变量是一个MediaPlayer.问题是Runnable甚至没有执行过一次.我在活动中的类似应用程序中使用完全相同的代码,它的工作完全正常.这是因为runnables在片段中的行为方式不同吗?此外,我正在使用带有ViewPager和2片段的TabLayout,如果这会影响其中任何一个.

java android runnable android-fragments

0
推荐指数
1
解决办法
1605
查看次数

调用setAdapter时片段中的NullPointerException

我有一点问题.我正在尝试使用片段创建一个布局,但是当我调用setAdapter方法时,我有一个Java NullPointerException,我找不到错误.谢谢大家!

public static class DemoObjectFragment extends Fragment {

        public static final String ARG_OBJECT = "object";
        private List<RowItem> rowItems;

        private static Integer[] images = {
            R.drawable.red,
            R.drawable.red,
            R.drawable.red,
            R.drawable.red,
            R.drawable.red,
            R.drawable.red,
            R.drawable.red,            
            R.drawable.red
            };

        ListView lv;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_collection_object, container, false);
            Bundle args = getArguments();

            lv = (ListView) this.getActivity().findViewById(R.id.myList);
            rowItems = new ArrayList<RowItem>();

            String[] titles = {"Movie1","Movie2","Movie3","Movie4","Movie5","Movie6","Movie7","Movie8"};
            String[] descriptions = {"First Movie","Second movie","Third Movie","Fourth Movie","Fifth Movie",
                    "Sixth Movie","Seventh Movie","Eighth …
Run Code Online (Sandbox Code Playgroud)

android oncreate android-listview android-fragments listview-adapter

0
推荐指数
1
解决办法
866
查看次数

动作栏按钮不打开抽屉

我有一个带有操作栏的片段活动,当您单击主屏幕图标时,该操作栏应该打开导航栏,其中三个线图标代表Android的抽屉开口.

出于某种原因,我可以点击按钮但不打开抽屉...我可以使用滑动手势打开抽屉......

public class MainDrawer2 extends FragmentActivity
{
    private static final String EXTRA_NAV_ITEM    = "extraNavItem";
    private static final String STATE_CURRENT_NAV = "stateCurrentNav";

    private ActionBarDrawerToggle mDrawerToggle;
    private DrawerLayout mDrawerLayout;

    private NavDrawerListAdapter mDrawerAdapter;
    private ListView mDrawerList;

    private CharSequence mTitle;
    private CharSequence mDrawerTitle;

    private MainNavItem mCurrentNavItem;


    public static Intent createLaunchFragmentIntent(Context context, MainNavItem navItem)
    {
        return new Intent(context, MainDrawer2.class)
                .putExtra(EXTRA_NAV_ITEM, navItem.ordinal());
    }

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

        mTitle = mDrawerTitle = getTitle();
        mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
        mDrawerList   = (ListView)findViewById(R.id.drawer);

        getActionBar().setDisplayHomeAsUpEnabled(true);
        enableHomeButtonIfRequired();

        mDrawerAdapter …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-actionbar

0
推荐指数
1
解决办法
4770
查看次数

Android ViewPager findViewById(R.id.viewPager)始终返回null

我正在尝试整理一个简单的视图寻呼机应用程序,我希望将其扩展.

目前,当我调用my ViewPager vPager = (ViewPager) findViewById(R.id.viewPager);onCreate方法时,FragmentActivity它返回null.

以下是完整的解释:

我的GUI xml看起来像这样:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

相应的Fragment类如下所示:

public class ViewFragment extends Fragment {

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

我有一个像这样的寻呼机xml:

\res\layout\view_pager.xml
<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

我的Pager Activity看起来像这样:

public class ScreenPagerActivity extends FragmentActivity {

    private ViewPager vPager;
    @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

0
推荐指数
1
解决办法
2913
查看次数

在片段中使用InputMethodManager

我正在尝试使用搜索栏,以便用户可以调整片段中edittext框的值。这是我使用它的地方:

...

//NOTE: This is in the onCreateView() method for a Fragment
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         seekBar.setProgress(seekBar.getProgress() + 1);
         editText.setText(String.valueOf(seekBar.getProgress()));

         //Hidden method call not needed to be visible...

         //Notice the InputMethodManager, also, this is line 197...
         InputMethodManager imm = (InputMethodManager) context.getSystemService(                                    
              Context.INPUT_METHOD_SERVICE);

         imm.hideSoftInputFromWindow(seekBar.getWindowToken(), 0);

    }
});

...
Run Code Online (Sandbox Code Playgroud)

这是Logcat的输出:

03-09 00:00:41.164      573-573/com.hidden.hidden E/AndroidRuntime? FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.hidden.hidden.hidden.onClick(Hidden.java:197)
            at android.view.View.performClick(View.java:3480)
            at android.view.View$PerformClick.run(View.java:13983)
            at android.os.Handler.handleCallback(Handler.java:605)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4340)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

0
推荐指数
1
解决办法
2164
查看次数

Android将databundle从活动传递到片段(标签)

我一直试图从listview-onclicklistener获取一个id到三个标签片段.用户首先单击myTicketsFragment,然后转到包含3个可滑动标签的详细信息页面.这些视图由名为TicketActivity的一个单独活动"托管".所以目前我已经成功地将数据从片段传递到TicketActivity,但我不能做得更远.一直在寻找2个小时但仍然没有结果..

这是我的代码:

myTicketsFragment:将setOnItemClickListener中的数据传递给制表符活动

public void onItemClick(AdapterView<?> parentView,
                        View childView, int position, long id) {

                    Bundle bundle = new Bundle();
                    bundle.putInt("ticketId", myTickets.get(position).getId());
                    Intent ticketDetail = new Intent(getActivity(), TicketActivity.class);
                    ticketDetail.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    ticketDetail.putExtras(bundle);
                    startActivity(ticketDetail);
}
Run Code Online (Sandbox Code Playgroud)

TicketActivity:接收数据并将其传递给3个选项卡

private ViewPager viewPager;
private TicketTabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Info", "Intern", "Extern" };

public TicketInfoFragment ticketInfoFragment;

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

    // Receive data
    Bundle bundle = getIntent().getExtras();
    int ticketId = bundle.getInt("ticketId");

            // …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs

0
推荐指数
1
解决办法
4618
查看次数

二进制XML文件行#10:错误膨胀类片段

在我的项目中,我使用三个选项卡在单个屏幕中显示三个活动.选项卡1 - 地图
选项卡2 - 游戏
选项卡3 - Imageflipper
当我选择系列中的选项卡,如地图--->游戏---> Imageflipper然后它工作正常.
但当我选择回到任何选项卡,如地图--->游戏---> Imageflipper --- >>游戏,然后它显示错误 -
二进制XML文件行#10:错误膨胀类片段.

模拟器的屏幕截图:

http://s9.postimg.org/jdjsxnswf/Untitled.png


这是我的logcat.

03-26 05:48:09.876: D/AndroidRuntime(1094): Shutting down VM
03-26 05:48:09.876: W/dalvikvm(1094): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
03-26 05:48:09.936: E/AndroidRuntime(1094): FATAL EXCEPTION: main
03-26 05:48:09.936: E/AndroidRuntime(1094): android.view.InflateException: Binary XML file line #10: Error inflating class fragment
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.example.image_changer.TopRatedFragment.onCreateView(TopRatedFragment.java:15) …
Run Code Online (Sandbox Code Playgroud)

xml android android-fragments

0
推荐指数
1
解决办法
4249
查看次数

更改dialogfragment背景颜色(使用Android Holo Colors Generator Xml模板)

我的所有主题都在我的dialogfragment背景下工作.我试图让我的dialogFragment背景变黑,但我做错了什么.

这里到目前为止我在主题xml中得到了什么(请注意,我将它的顶部和底部封顶):

<style name="easydealtheme" parent="@style/_easydealtheme"/>

  <style name="_easydealtheme" parent="android:Theme.Holo.Light.DarkActionBar">

<item name="android:editTextBackground">@drawable/easydealtheme_edit_text_holo_light</item>

<item name="android:dropDownListViewStyle">@style/Listviewdropdowneasydealtheme</item>
<item name="android:textViewStyle">@style/Textvieweasydealtheme</item>
<item name="android:editTextStyle">@style/Edittexteasydealtheme</item>

<item name="android:alertDialogTheme">@style/Dialogeasydealtheme</item>
...
Run Code Online (Sandbox Code Playgroud)

这是我在我的对话框的Styles xml中得到的:

<style name="Dialogeasydealtheme" parent="android:Theme.Holo.Dialog">
<item name="android:textColor">#FFFFFF</item>
<item name="android:windowBackground">@color/test</item>
</style>
Run Code Online (Sandbox Code Playgroud)

以下是显示dialogFragment的代码:

 public static void ShowPhotoDialog(String title,File photoFile, FragmentManager fragM)
    {

        FragmentPhotoDialog photoD = new FragmentPhotoDialog();
        FragmentTransaction fTX  = fragM.BeginTransaction();
        photoD.SetStyle(DialogFragmentStyle.NoFrame, EasyDeal_Android.Resource.Style.easydealtheme);
        photoD.SetTile(title);
        photoD.SetPhotoFile(photoFile);
        photoD.Show(fTX, "Dialog");

    }
Run Code Online (Sandbox Code Playgroud)

这里的结果不起作用(白色应为黑色): DF

android android-layout android-theme android-fragments

0
推荐指数
1
解决办法
8678
查看次数

在Android中绘制片段

我有以下代码:

import android.app.Fragment;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.widget.TextView;

public class MainFragment extends Fragment {

protected AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f ); 


public MainFragment(){}


public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.main_fragment, container, false);
    String fontPath = "fonts/roboto.ttf";
    Typeface font = Typeface.createFromAsset(getActivity().getAssets(), fontPath);

    TextView txt1 = (TextView) rootView.findViewById(R.id.headerTextView);
    txt1.setTypeface(font); 

    TextView txt2 = (TextView) rootView.findViewById(R.id.instructions);
    txt2.setTypeface(font);


    txt1.startAnimation(fadeIn);
    txt2.startAnimation(fadeIn);
    fadeIn.setDuration(1400);
    fadeIn.setFillAfter(true);

    Rect rectangle = new …
Run Code Online (Sandbox Code Playgroud)

java android ondraw android-fragments

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

无法滚动我的ListView里面的片段

我有一个片段,必须是viewPager中的布局之一.我的片段有一个listView,应该填充一些常量文本.如下所示:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Display_Rows();
}

private void Display_Rows() {
    Log.d(TAG, "Displaying Rows...");

    final ListView lv =(ListView) rootView.findViewById(R.id.Asset_Scanned_listView);
    final List<String> lst = new ArrayList<String>();

    lst.add("1");
    lst.add("2");
    lst.add("3");
    lst.add("4");
    lst.add("5");
    lst.add("6");
    lst.add("7");
    lst.add("8");
    lst.add("9");
    lst.add("10");

    ArrayAdapter<String> ArAd =new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,lst);

    lv.setAdapter(ArAd);                
    lv.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3){
            Toast.makeText(getActivity(), String.valueOf(((TextView)arg1).getText()), Toast.LENGTH_SHORT).show();
        }});

    Log.d(TAG, "Rows Displayed");
}
Run Code Online (Sandbox Code Playgroud)

这是我的xml的一部分:

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/RLayoutSort"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" >

    <ListView
        android:id="@+id/Asset_Scanned_listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</ScrollView>
Run Code Online (Sandbox Code Playgroud)

但我的listView只显示第一个文本.任何人都可以帮我解决我的代码中的错误吗?

android listview android-listview android-fragments

0
推荐指数
1
解决办法
3019
查看次数