如何在片段类中使用活动类

时间:2014-01-18 07:48:04

标签: android

需要一些帮助,我有一个登录页面从那里一个意图传递到下一个验证后,下一页是预定义的布局(可滑动的选项卡)现在我知道如何在不同的滑动上创建不同的布局,并将有每个刷卡都有不同的java文件,java文件是

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Settings.Global;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
/**
 * @author sanketh
 *
 */

public class profile extends Fragment {
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

       View rootView = inflater.inflate(R.layout.profile, container, false);

       prof p1=new prof();
      p1.setname(Gloabal.getemail());
       return rootView;


   }
}

这段代码工作正常没有任何问题,但现在我想使用textview,edittext等布局对象来设置文本,我不能这样做因为我的类没有扩展活动类所以我创建了一个扩展的类在同一个文件中的活动,但是我怎么能使这个类也运行上面提供的类

class prof extends Activity
   {
       TextView t1;
       datab dat;
       @Override

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.profile);
             t1=(TextView)findViewById(R.id.widget35);  
       }
       prof()
       {
           //setname(Gloabal.getemail());
       }
       public void setname(String e)
       {
           Toast.makeText(Gloabal.getcontext(), "hello", Toast.LENGTH_LONG).show();
           t1.setText("sanketh");
            /*Cursor cur=dat.getname(e);
            cur.moveToFirst();
*/      
       }
       /*@Override
       public void onStart()
       {
           super.onStart();
           dat=new datab(this);
           setname(Gloabal.getemail());
       }*/

   }

这个额外添加的类,所以我不能在页面上显示一些内容

3 个答案:

答案 0 :(得分:2)

您可以使用this.getActivity()

从片段中访问活动

答案 1 :(得分:0)

试试这个..

   TextView t1;

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

       View rootView = inflater.inflate(R.layout.profile, container, false); 

       t1=(TextView) rootView.findViewById(R.id.widget35);  
       t1.setText("sanketh "+Gloabal.getemail());
       return rootView;


   }

答案 2 :(得分:0)

覆盖Fragment中的onAttach()方法并将Activity保存到任何变量。 例如:

public class profile extends Fragment {
   private Activity myActivity = null;

   @Override
   public void onAttach (Activity activity){
       this.myActivity = activity;
   }

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

       View rootView = inflater.inflate(R.layout.profile, container, false);

       prof p1=new prof();
      p1.setname(Gloabal.getemail());
       return rootView;


   }
}

之后您可以使用此活动。 例如

TextView myTextView = new TextView(myActivity)