我有一个带有自定义对象的ArrayList.我想在这个ArrayList中搜索字符串.
对象的类看起来像这样:
public class Datapoint implements Serializable {
private String stateBased;
private String name;
private String priority;
private String mainNumber;
private String groupadress;
private String dptID;
public Datapoint(){
}
public String getMainNumber() {
return mainNumber;
}
public void setMainNumber(String mainNumber) {
this.mainNumber = mainNumber;
}
public String getName() {
return name;
}
..and so on
Run Code Online (Sandbox Code Playgroud)
我知道如何在ArrayList中搜索字符串但是如何使用我的自定义对象在ArrayList中执行此操作:
ArrayList<String> searchList = new ArrayList<String>();
String search = "a";
int searchListLength = searchList.size();
for (int i = 0; i < searchListLength; i++) {
if …Run Code Online (Sandbox Code Playgroud) 我尝试以编程方式将属性AlignParentRight设置为RelativeLayout中的按钮,但程序崩溃时出现NullPointerException.这是我的代码:
//add horizontal realative layout
RelativeLayout layouth = new RelativeLayout(this);
layouth.setLayoutParams(new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//add textview for label
TextView t = new TextView(this);
t.setText(d.getName());
t.setTextSize(25);
t.setId(2);
t.setLayoutParams(new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//add button
Button b = new Button(this);
b.setText(d.getName());
RelativeLayout.LayoutParams layoutParams =(RelativeLayout.LayoutParams)b.getLayoutParams();
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layoutParams.addRule(RelativeLayout.LEFT_OF, 2);
b.setLayoutParams(layoutParams);
//add textview and button to horizontal linear layout
layouth.addView(t);
layouth.addView(b);
//add horizontal linear layout to vertical linear layout
layoutv = (LinearLayout) findViewById(R.id.ProjectViewLinearID);
layoutv.addView(layouth);
Run Code Online (Sandbox Code Playgroud)
我的问题在哪里?该错误发生在程序行中layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
更新解决方案:
这段代码适合我:
// Creating a new RelativeLayout
RelativeLayout layouth = …Run Code Online (Sandbox Code Playgroud) android android-layout android-button android-relativelayout
我必须在我的Android应用程序中等待几秒钟,我想在此期间显示进度条,我该怎么做?
我试过这个代码:
public boolean WaitTask() {
pDialog = ProgressDialog.show(context,null, "Lädt..",true);
new Thread() {
public void run() {
try{
// just doing some long operation
sleep(2000);
} catch (Exception e) { }
pDialog.dismiss();
}
}.start();
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是进度条立即关闭而不等待两秒钟.我的问题在哪里?
进度条应该类似于Android开发者在此站点中显示的活动圈.
更新 AsyncTask
private class WaitTime extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
mDialog.show();
}
protected void onPostExecute() {
mDialog.dismiss();
}
@Override
protected void onCancelled() {
mDialog.dismiss();
super.onCancelled();
}
@Override
protected Void doInBackground(Void... params) {
long …Run Code Online (Sandbox Code Playgroud) 如果构建项目,Android Studio中会出现错误:
Android Studio中的错误:
Gradle: Der Befehl "C:\Program" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyApplication:dexDebug'.
> Running C:\Users\Michael\AppData\Local\Android\android-studio\sdk\build-tools\android-4.2.2\dx.bat failed. See output
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)
命令窗口中的输出gradlew compileDebug --stacktrace为:
The TaskContainer.add() method has been deprecated and is scheduled to be remove
d in Gradle …Run Code Online (Sandbox Code Playgroud) 我在Android中的ListFragment中使用工具栏,可以在滚动期间隐藏/显示它.我implement AbsListView.OnScrollListener在里面使用这个代码:
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// Leave this empty
}
/**
* Method to detect if the scroll status changed
*
* @param listView
* @param scrollState
*/
@Override
public void onScrollStateChanged(AbsListView listView, int scrollState) {
if (!isTablet) {
final int currentFirstVisibleItem = listView.getFirstVisiblePosition();
if (currentFirstVisibleItem > mLastFirstVisibleItem) {
((ActionBarActivity) getActivity()).getSupportActionBar().hide();
} else if (currentFirstVisibleItem < mLastFirstVisibleItem) {
((ActionBarActivity) getActivity()).getSupportActionBar().show();
}
mLastFirstVisibleItem = currentFirstVisibleItem;
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当我向下滚动时隐藏工具栏,如果向上滚动则显示工具栏.但动画非常"难",我希望有一个更顺畅的过渡.它应该看起来像这样(没有标签,只有工具栏):https: …
android android-listview onscrolllistener material-design android-toolbar
我添加了一些带有以下行的按钮:
for (int i=0; i<XML.size(); i++) {
//add button
ToggleButton b = new ToggleButton(this);
// Setting the parameters
lefttextv.setLayoutParams(lleft);
b.setLayoutParams(bright);
//customize button
b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// Adding to the RelativeLayout as a child
layouth.addView(lefttextv);
layouth.addView(b);
id_button++;
}
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能获得OnClick()方法呢?我已经用这个方法实现了View.OnClickListener:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
{
case id_button: Log.d("Button 0","Button 0 pressed);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我如何获得Id?
我正在使用一个使用开源Java库(Calimero)的Android应用程序.当我尝试通过WiFi连接到KNXnet/IP路由器时,我的代码会引发错误.
这里的问题代码:
private static KNXNetworkLinkIP connect(InetSocketAddress isaLocalEP, InetSocketAddress isaRemoteEP)
{
KNXNetworkLinkIP netLinkIp = null;
int serviceMode = KNXNetworkLinkIP.TUNNEL; // tunnel to IP router
boolean useNAT = true; // NAT not used for PC true or false , but needed for emulator = true
KNXMediumSettings tpSettings = new TPSettings(true); // TP1 medium
try
{
// Output the local end point address
if (m_debugOutput == true)
{
System.out.println("..Tunneling, NAT ignored, TP1 medium");
// Should be the PC's VPN address
System.out.print("..Local EP:");
System.out.println(isaLocalEP.getHostName() …Run Code Online (Sandbox Code Playgroud) 我正在使用带有自定义列表适配器的ListFragment,我想通过单击ActionBar中的图标来刷新列表.不幸的是它不起作用,我不明白为什么.
我的ItemListFragment:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("debug","Hallo in ItemListFragment");
//show ActionBar
setHasOptionsMenu(true);
//get reference to activity
myApp = getActivity().getApplication();
//check if intent from ItemListActivity is null
Bundle be = getActivity().getIntent().getExtras();
if (be == null){
//if null read local feed
feed = ReadFeed(fileName);
Log.d("debug", "Lese Feed lokal :"+feed);
}else{
//else get extras from the intent
feed = (RSSFeed) getActivity().getIntent().getExtras().get("feed");
Log.d("debug", "Intent von ItemListActivity an ItemListFragment vorhanden");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) android listview android-fragments android-listfragment notifydatasetchanged
我在Android应用程序中使用Master/Detail设计.如果我在ItemListActivity中单击列表视图中的项目,则会将位置提供给我的ItemDetailActivity.这个实现了ViewPager和FragmentStatePagerAdapter.所以我想在细节视图之间滑动.
我不知道如何告诉ViewPager从所需的位置开始(ItemListActivity中的整数).无论我在列表中点击哪一个,我的ViewPager始终位于列表的第0位.
这是我的代码:
ItemDetailActivity
public class ItemDetailActivity extends FragmentActivity {
RSSFeed feed;
int pos;
private static List<Fragment> fragments;
/**
* The pager widget, which handles animation and allows swiping horizontally to access previous
* and next wizard steps.
*/
private ViewPager mPager;
/**
* The pager adapter, which provides the pages to the view pager widget.
*/
private PagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// define layout of this activity
setContentView(R.layout.activity_item_detail);
// Get the feed object and …Run Code Online (Sandbox Code Playgroud) 我使用服务连接到使用AsyncTask的网络.我想显示ProgressDialog,直到应用程序连接到网络.但是我怎么能这样做呢?
我的服务看起来像这样:
package de.bertrandt.bertrandtknx;
import tuwien.auto.calimero.link.KNXNetworkLinkIP;
import tuwien.auto.calimero.process.ProcessCommunicator;
import de.bertrandt.bertrandtknx.Controls.OnOff;
import android.app.ProgressDialog;
import android.app.Service;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.IBinder;
import android.widget.Toast;
public class ConnectionService extends Service {
public static KNXNetworkLinkIP m_netLinkIp = null;
private static ProcessCommunicator m_pc = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
//code to execute when the service is first created
new Connect().execute();
}
@Override
public void onDestroy() {
//code to execute when the …Run Code Online (Sandbox Code Playgroud) android ×9
listview ×2
android-wifi ×1
arraylist ×1
build.gradle ×1
button ×1
buttonclick ×1
java ×1
networking ×1
onclick ×1
progress-bar ×1
search ×1
sockets ×1
wait ×1