2016-02-13 60 views
0

代碼:微調選擇信息並設置片段活動活動

public class UsersActivity extends AppCompatActivity { 
    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     int idOfUser; 
     DatabaseHandler db = new DatabaseHandler(this); 
     Intent i = getIntent(); 
     idOfUser = i.getIntExtra("id", 0); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_users); 
     TextView tvOfHello = (TextView) findViewById(R.id.tvHelloInUserCabinet); 
     NewUserTable newUserTable = db.getUser(idOfUser); 
     tvOfHello.setText("Здравствуйте " + String.valueOf(newUserTable.getName()) + "\nВаш баланс : " + String.valueOf(newUserTable.getBalance())); 

    } 
} 
/* 
if(spinner.getSelectedItem().equals("Корзина")){ 
     FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     ShoppingBasket shopBask = new ShoppingBasket(); 
     fragmentTransaction.add(R.id.ShoppingBasketFragment,shopBask,"HELLO"); 
     fragmentTransaction.commit(); 
     }*/ 

如何設置片段活動從微調的事件處理程序?該選擇項目=更改活動中的片段。由於

+0

我din't真正瞭解?你能在這裏清楚一點嗎? – GvSharma

+0

我想通過選定的微調項目更改活動中的片段 –

回答

0

定義此偵聽微調

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
    // your code here 
} 

@Override 
public void onNothingSelected(AdapterView<?> parentView) { 
    // your code here 
} 

}); 

注意onItemSelected當視圖正在建設的方法也被調用,所以你可以考慮把它onCreate()方法調用中。

並更改片段。

private void changeFragment(String spinnerSelectedItem) { 

FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    ShoppingBasket shopBask = new ShoppingBasket(); 
    fragmentTransaction.add(R.id.ShoppingBasketFragment,shopBask,"HELLO"); 
    fragmentTransaction.commit(); 
    } 
} 

裏面onCreate調用上面的方法。 也從spinnerOnItemSelectedListener調用上述方法也

希望這會有所幫助。

+0

問題在哪裏? –

0
public class UsersActivity extends AppCompatActivity { 
Spinner spinner = (Spinner) findViewById(R.id.spinner); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    int idOfUser; 
    DatabaseHandler db = new DatabaseHandler(this); 
    Intent i = getIntent(); 
    idOfUser = i.getIntExtra("id", 0); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_users); 
    TextView tvOfHello = (TextView) findViewById(R.id.tvHelloInUserCabinet); 
    NewUserTable newUserTable = db.getUser(idOfUser); 
    tvOfHello.setText("Здравствуйте " + String.valueOf(newUserTable.getName()) + "\nВаш баланс : " + String.valueOf(newUserTable.getBalance())); 

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
      changeFragment("Корзина"); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parentView) { 
      // your code here 
     } 

    }); 
} 
private void changeFragment(String spinnerSelectedItem) { 

    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    ShoppingBasket shopBask = new ShoppingBasket(); 
    fragmentTransaction.add(R.id.ShoppingBasketFragment, shopBask, "HELLO"); 
    fragmentTransaction.commit(); 
} 

}和異常