我为底栏创建了一个xml。 使用以下代码行在其他活动xml中实现此底栏:
<include layout="@layout/bottom_bar" />
其中bottom_bar是底栏的文件xml的名称。
我创建了一个MainActivity,当我启动应用程序时,我会看到带有底栏的MainActivity内容。
如何在底栏的一个按钮中设置onclicklistener并使其在我的应用的每个活动中都有效?
这是bottom_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footer"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="80dip"
android:background="#ff44ff">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="1dip">
<ImageView
android:id="@+id/imageView1"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_width="75dip"
android:layout_height="75dip"
android:background ="@drawable/icona" />
</LinearLayout>
</HorizontalScrollView>
这是MainActivity.java
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflater layoutInflator = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll_content);
List views = new ArrayList();
//create a dynamic view
Iterator<Notizia> it = (Dati.listaNotizie).iterator();
while (it.hasNext()){
final Notizia not = it.next();
View view = layoutInflator.inflate(R.layout.layout_notizie, null);
TextView textView = (TextView) view.findViewById(R.id.notizieTitolo);
int pixel = (int) (10 * getResources().getDisplayMetrics().density);
TextView textView1 = (TextView) view.findViewById(R.id.notizieSottoTitolo);
textView.setText(not.getTitolo());
textView1.setText(not.getSottoTitolo());
textView.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Dati.setNewsListaAttuale("http://www.rhinos.it/rhinos-news/");
SingleNewsActivity.setNotizia(not);
Intent intent = new Intent(MainActivity.this, SingleNewsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
views.add(view);
}
for(int i = 0; i<views.size(); i++)
insertPoint.addView((View) views.get(i));
}
}
我可以为底栏创建一个java类或函数,并在MainActivity.java中实现这个类/函数吗?
答案 0 :(得分:0)
设置ID
<include android:id="@+id/bottom_bar"
layout="@layout/bottom_bar" />
然后
View bottom_bar_container = findViewById(R.id.bottom_bar);
bottom_bar_container.findViewById(R.id.<your id name which is use inside bottom bar>);
设置点击监听器
答案 1 :(得分:0)
在布局的XML参考中设置id。
<include android:id="@+id/yourBottomBarId" layout="@layout/bottom_bar" />
然后通过引用它在活动类中获取它。
YourBottomBar bottomBar = (YourBottomBar) findViewById(R.id.yourBottomBarId);
然后引用bottomBar视图中包含的按钮。
// Unsure how you want to reference, this is one suggestion.
Button yourButton = bottomBar.getButton();
yourButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// Your onClick implementation here.
}
});